2014-01-09 118 views
0

我想找一種方法來測試瀏覽器是否可以支持three.js。我看到,您可以使用此行代碼three.js所提供的detector.js檢查是否應使用WebGL的或帆布:測試是否支持Three.js

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

這是工作的一部分,而不是全部。 CanvasRenderer不適用於其他任何瀏覽器。取決於你想要做什麼。在我的情況下,我想做一個簡單的旋轉立方體,就像three.js提供的畫布示例一樣),即使IE9應該支持canvas(http://caniuse.com/canvas),它也不適用於IE9。

我希望能夠測試瀏覽器是否支持示例代碼。我不想逐個檢查每個瀏覽器,看看他們是否可以支持它,然後顯示別的東西,如果他們不支持。

任何想法是值得歡迎的。先謝謝你。

回答

0

您可以使其它附加測試,以檢查是否瀏覽器支持畫布,它在Detector.js(Detector.canvas):

!! window.CanvasRenderingContext2D 

但隨着IE9的問題(可能是10,我不不知道)是不是由於這個原因,這是由於加載順序是異步的。您需要使用Require.js或簡單something like that加載three.min.js和其他腳本,然後才能正常工作。你也可以檢查iewegl examples看看他們是如何做的。

+0

感謝您的回答。我沒有注意到Detector.canvas,謝謝你指出我。我不知道Require.js或類似的東西,所以我試圖使用它,但它似乎並沒有在IE9上更好地工作。如果你想檢查它,我把一個例子放在線上:http://mywholepicture.com/test/detector.html – aschaeffer

+0

正如你寫的,我用這一行來檢查瀏覽器是否可以渲染多維數據集:'if(! Detector.webgl &&!Detector.canvas)' – aschaeffer

+0

[我會嘗試類似的東西](http://jsfiddle.net/jeum/t52p5/),但我無法測試它。我已經更新IE,但有一個IE9的解決方案(我用我的第二個鏈接)。否則,你的信息也可能是「Please upadate your browser ...」IE11你不需要改變通常的腳本,你會得到webgl。 – jeum

相關問題