我只是在Safari浏览器得到这个wiered错误。 不知道为什么。 我使用AngularJS 1.3.x下
那么,如何检测其文库可以利用这一点。 为什么只有Safari我得到这个错误? 是否有通过JS的方式来启用或禁用的WebGL?
我只是在Safari浏览器得到这个wiered错误。 不知道为什么。 我使用AngularJS 1.3.x下
那么,如何检测其文库可以利用这一点。 为什么只有Safari我得到这个错误? 是否有通过JS的方式来启用或禁用的WebGL?
你应该在你的HTML的顶部?
<script>
HTMLCanvasElement.prototype.getContext = (function(origFn) {
var bannedTypes = {
"webgl": true,
"webgl2": true,
"experimental-webgl":, true,
};
return function() {
var type = arguments[0];
return bannedTypes[type]
? null
: origFn.apply(this, arguments);
};
}(HTMLCanvasElement.prototype.getContext));
</script>
只要这似乎任何其他脚本之前应该可以挡住WebGL的。
上述变化的脚本替换功能someCanvas.getContext
这样,当其他一些JavaScript试图创建一个“WebGL的”上下文返回null
,这意味着创建上下文失败。 否则,如果JavaScript的要求提供不同类型的上下文它调用原来getContext
功能。
只要这个脚本首先被执行,应该避免在页面上其他JavaScript从创建一个WebGL的上下文。 它不会阻止JavaScript的iframe中从创建上下文。 你需要相同的解决方案添加到每个iframe中。