【问题标题】:test if Three.js is supported测试是否支持 Three.js
【发布时间】:2014-01-10 18:44:21
【问题描述】:

我想找到一种方法来测试浏览器是否可以支持three.js。我看到你可以使用three.js提供的detector.js和这行代码来检查你应该使用WebGL还是canvas:

renderer = Detector.webgl? new THREE.WebGLRenderer(): new THREE.CanvasRenderer();

这是工作的一部分,而不是全部。 CanvasRenderer 不适用于所有其他浏览器。取决于你想做什么。就我而言,我想做一个简单的旋转立方体,就像three.js提供的画布示例一样),它在IE9上不起作用,即使IE9应该支持画布(http://caniuse.com/canvas)。

我希望能够测试浏览器是否支持示例代码。我不想一个一个地检查每个浏览器,看看他们是否支持它,然后如果他们不支持,就展示其他东西。

欢迎任何想法。提前谢谢你。

【问题讨论】:

    标签: javascript canvas three.js


    【解决方案1】:

    你可以做一个额外的测试来检查浏览器是否支持Canvas,它在Detector.js(Detector.canvas)中:

    !! window.CanvasRenderingContext2D
    

    但是 IE9 的问题(可能是 10,我不知道)不是因为这个,而是因为加载顺序是异步的。您需要使用Require.js 或干脆something like that 加载three.min.js 和其他脚本,然后它会工作。你也可以查看iewegl examples 看看他们是怎么做的。

    【讨论】:

    • 感谢您的回答。我没有注意到Detector.canvas,谢谢你指出我。我不知道 Require.js 或类似的东西,所以我尝试使用它,但它似乎在 IE9 上效果不佳。我在网上放了一个例子,你想看的话:mywholepicture.com/test/detector.html
    • 正如你所写,我已经使用这一行来检查浏览器是否可以渲染立方体:if(!Detector.webgl && !Detector.canvas)
    • I would try something like that 但我无法测试它。我已经更新了 IE,但是 IE9 有一个解决方案(我使用了我的第二个链接)。否则,您的消息也可能是“请更新您的浏览器...”使用 IE11,您无需更改通常的脚本,您将获得 webgl。
    • 我还没有找到一种 100% 有效的方法,但不确定是否有。最后,我将使用一个链接,用户可以使用该链接将 3D 预览切换为伪 3D 图像。这是我发现如何处理这个问题的更好方法。感谢您的帮助
    • Try this one(我想起了一些事情),如果它仍然不起作用我不知道:(
    猜你喜欢
    • 2014-07-30
    • 2018-04-11
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    相关资源
    最近更新 更多