HTMLCanvasElement:contextlost 事件

可用性有限

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

當用戶代理檢測到與 CanvasRenderingContext2D 上下文關聯的後備儲存丟失時,會觸發 contextlost 事件,它是 Canvas API 的一部分。上下文可能由於多種原因丟失,例如驅動程式崩潰、應用程式記憶體不足等。

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

語法

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

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

oncontextlost = (event) => { }

事件型別

一個通用的 Event

示例

以下程式碼片段會檢測 contextlost 事件。

js
const canvas = document.getElementById("canvas");

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

如果想阻止上下文被恢復,程式碼可能看起來像這樣:

js
const canvas = document.getElementById("canvas");

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

規範

規範
HTML
# event-contextlost

瀏覽器相容性

另見