gpt4 book ai didi

javascript - 抑制 Google Chrome 中的 "Rats! WebGL hit a snag."错误栏

转载 作者:可可西里 更新时间:2023-11-01 01:53:10 26 4
gpt4 key购买 nike

我最近开始在我正在开发的网站上使用 WebGL。它被用作增强功能,如果不支持 WebGL 或出现错误,网站将回退到 Canvas 呈现。

不幸的是,当谷歌浏览器出现 WebGL 异常时,会出现一个错误消息栏。在用户与它交互之前,该栏不会消失。如果他们重新加载或导航到不同的页面,则该消息将在该站点下次尝试使用 WebGL 时重新出现。

就我的网站而言,这意味着 WebGL 错误消息永远不会消失,因为每个页面都尝试使用 WebGL。一旦发生错误,Chrome 将不会在同一站点上再次使用 WebGL,直到用户告诉它 Reload,因此连续的错误消息实际上并不表示连续的错误,只是连续尝试使用 WebGL。


一旦发生 WebGL 错误,只需运行以下命令即可在该站点上重现此对话框:

document.createElement('canvas').getContext('experimental-webgl');

这不会引发任何异常,并且我在 canvas 元素上的 .onerror 方法没有被调用。

我无法对此进行深入调查,因为我无法可靠地重现 WebGL 错误。 (即使我可以在我的计算机上复制一个,它也可能无法在其他计算机上复制。)


这种行为对于依赖 WebGL 的网站来说是合理的,但我的网站不这样做,因此该消息只会让用户分心和困惑。

有什么办法可以抑制这个错误信息吗?一旦发生错误,我不介意回到 忽略 禁用 WebGL 的行为。

最佳答案

如果你想忽略异常,那么下面的应该足够了。

canvas.addEventListener("webglcontextlost", function(e) { e.preventDefault(); Stopdrawing(); }, false); 

如果你想重试加载webgl上下文

canvas.addEventListener("webglcontextrestored", function (event) {initializeResources();  }, false);

编辑:

如果您想测试上下文是否得到正确处理,请在 webgl 上下文上使用 WEBGL_lose_context 扩展。

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

关于javascript - 抑制 Google Chrome 中的 "Rats! WebGL hit a snag."错误栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com