离屏画布:contextlost 事件
如果浏览器检测到 OffscreenCanvasRenderingContext2D
上下文已丢失,则会触发 OffscreenCanvas
接口的 contextlost
事件。上下文丢失可能由多种原因导致,例如关联的 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 |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。