OffscreenCanvas: contextlost 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

OffscreenCanvas 介面的 contextlost 事件,會在瀏覽器檢測到 OffscreenCanvasRenderingContext2D 上下文丟失時觸發。上下文丟失的原因有多種,例如關聯的 GPU 驅動程式崩潰,或應用程式記憶體不足等。

預設情況下,使用者代理會嘗試恢復上下文,然後觸發 contextrestored 事件。使用者程式碼可以透過在事件處理過程中呼叫 Event.preventDefault() 來阻止上下文恢復。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("contextlost", (event) => { })

oncontextlost = (event) => { }

事件型別

一個通用的 Event

示例

下面的程式碼片段檢測 contextlost 事件。

js
const canvas = new OffscreenCanvas(256, 256);
const gl = offscreen.getContext("2d");

// Do drawing etc

canvas.addEventListener("contextlost", (event) => {
  console.log(event);
});

要阻止上下文恢復,事件處理程式程式碼可能看起來像這樣

js
canvas.addEventListener("contextlost", (event) => {
  event.preventDefault();
});

規範

規範
HTML
# event-contextlost
HTML
# handler-offscreencanvas-oncontextlost

瀏覽器相容性

另見