HTMLCanvasElement: webglcontextlost 事件

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

如果用户代理检测到与 WebGLRenderingContext 对象关联的绘图缓冲区已丢失,则会触发 WebGL APIwebglcontextlost 事件。

此事件不冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

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

onwebglcontextlost = (event) => { }

事件类型

一个 WebGLContextEvent。继承自 Event

Event WebGLContextEvent

事件属性

此接口继承自其父接口 Event 的属性。

WebGLContextEvent.statusMessage

一个只读属性,包含有关事件的附加信息。

示例

借助 WEBGL_lose_context 扩展,你可以模拟 webglcontextlost 事件。

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

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

gl.getExtension("WEBGL_lose_context").loseContext();

// "webglcontextlost" event is logged.

规范

规范
WebGL 规范
# 5.15.2

浏览器兼容性

另见