【发布时间】:2016-04-18 22:57:52
【问题描述】:
以下代码会抛出错误吗?
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("somethingwrong");
在 chromium 中,它只返回 null。
如果浏览器知道请求的渲染上下文会怎样? (如“webgl”或“experimental-webgl”)是否有可能出现错误异常?在铬中我无法引发这种行为。
换句话说:我是否需要将此代码包装在一个库中的 try/catch 中,以便干净地检查渲染上下文?
有没有办法将其客观化?例如。由一个 Web 服务尝试在不同浏览器中截取的代码并列出它们可能不同的结果。
【问题讨论】:
-
是的,对我来说也是这样。但是可能有一个浏览器支持“2d”上下文而没有其他的。但即使我禁用 webgl,我也会得到 null 作为返回值。在创建过程中,我不确定是否会出现异常,因为 document.createElement("something") 对我来说返回 undefined 无一例外。
-
不是骗子而是相关的,stackoverflow.com/questions/36565598/… 另外,这个事件确实存在的事实意味着是的,浏览器可以抛出错误。
-
感谢您的链接。我知道“webglcontextcreationerror”事件。我不是 100% 确定这里的术语,但我认为这不会引发错误,因为我无法在另一个地方捕获它(使用 try/catch)。我想说,这是一个常规事件,有时被称为“...错误”。但是,如果我在这里错了,请有人纠正我,
标签: javascript canvas browser cross-browser