1

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

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

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

或者有什么方法可以让我们在页面加载时知道 WebGl 被禁用?

4

1 回答 1

3

没有办法在浏览器中自动启用 WebGL。默认情况下由浏览器供应商启用它 - Safari 和 IE 是该领域的两个后来者。WebGL 即将出现在 IE11(源代码)中,我想下一个版本的 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,但这并不总是有效(一些浏览器会返回误报)。最好的办法是创建一个画布元素并检查 WebGL 上下文:

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

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

    return webgl;
}
于 2013-05-26T11:19:19.927 回答