自动启用webGL?

时间:2013-05-20 07:30:40

标签: javascript browser webgl

我正在使用glfx.js jquery插件来调整图像的色调/饱和度,但大多数浏览器不支持WebGL

如果网站使用它,有没有办法在浏览器中自动启用webgl?

我知道您需要在Safari中手动启用它,并且有一个IE插件。

或者有没有办法让我们在页面加载时知道WebGl被禁用了?

1 个答案:

答案 0 :(得分:3)

无法在浏览器中自动启用WebGL。浏览器供应商手中默认启用它 - Safari和IE是该领域的两个后来者。 WebGL即将推出IE11(source),我认为Safari的下一个版本默认会启用它(自上次发布以来已超过一年)。

但您可以检测WebGL是否已启用。

正如您可能知道的那样,如果未启用WebGL,glfx.js会发出错误消息。听起来你正试图采取其他行动(如果是这种情况)(没有WebGL支持)。

查看glfx.js文档,他们提供了这个示例:

window.onload = function() {
    // try to create a WebGL canvas (will fail if WebGL isn't supported)
    try {
        var canvas = fx.canvas();
    } catch (e) {
        alert(e);
        // Here is where you want to take some other action
        // For example, redirecting to another page with window.location.href = ...
        return;
    }
}

对于那些不使用glfx.js的人来说,最简单的检查是使用!!window.WebGLRenderingContext,但这并不总是有效(某些浏览器会抛弃误报)。最好的方法是创建一个canvas元素并检查WebGL上下文:

function webGLSupport()
{
    var canvas = document.createElement( 'canvas' );
    var webgl = false;

    try
    {
        webgl = !!( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) );
    }
    catch(e) {};

    return webgl;
}