2012-06-28 17 views
1

我不明白爲什麼這個腳本在IE中不起作用,而它在Firefox和Chrome中運行。當我嘗試在IE中使用此腳本時,我收到此消息「ACTIVEX停止腳本」。多平臺(Chrome,IE,Firefox)

請幫幫我。

<!DOCTYPE html> 
<html> 
<head> 
    <title>Getting Started with Three.js</title> 

    <script type="text/javascript" src="http://www.html5canvastutorials.com/libraries/Three.js"></script> 
    <script type="text/javascript"> 
    window.onload = function() { 
    var renderer = new THREE.WebGLRenderer(); 
    renderer.setSize(800, 600); 
    document.body.appendChild(renderer.domElement); 
    var scene = new THREE.Scene(); 
    var camera = new THREE.PerspectiveCamera(
     35,  // Field of view 
     800/600, // Aspect ratio 
     0.1,  // Near plane 
     10000  // Far plane 
    ); 
    camera.position.set(15, 10, 10); 
    camera.lookAt(scene.position); 
    scene.add(camera); 
    var cube = new THREE.Mesh(
     new THREE.CubeGeometry(5, 5, 5), 
     new THREE.MeshLambertMaterial({ color: 0xFF0000 }) 
    ); 
    scene.add(cube); 
    var light = new THREE.PointLight(0xFFFF00); 
    light.position.set(10, 0, 10); 
    scene.add(light); 
    renderer.render(scene, camera); 
    }; 
    </script> 
</head> 
<body></body> 
+2

哪個版本的IE? – jazzytomato

回答

2

的three.js所WebGLRenderer並不在IE瀏覽器(不支持WebGL的)

嘗試

var renderer = new THREE.CanvasRenderer()

代替

2

作爲替代到非常簡單的解決方案上面你可以利用改變q和mrdoob的偉大Detector.js script這是包括與examples for three.js聯繫。如果您使用下面的代碼,則可以將WebGLRenderer用作默認值,並且僅當WebGL不可用時才使用畫布。您也可以使用像webglEnabled這樣的標誌,以便稍後在您的代碼中根據您的渲染器設置其他選項。

var webglEnabled = false; 
var webglReq = false; 

if (Detector.webgl) { 
    renderer = new THREE.WebGLRenderer(
      { 
       antialias: true, 
       preserveDrawingBuffer: true 
      }); // allow screenshot 

    webglEnabled = true; // set flag 
} 
else if (webglReq) { Detector.addGetWebGLMessage(); return false; } 
else { 
    renderer = new THREE.CanvasRenderer(); 
} 
renderer.setClearColorHex(0x000000, 1); 
renderer.setSize(window.innerWidth, window.innerHeight); 
+0

同意。它總是值得向可以使用它的訪問者提供WebGL渲染器。沒有必要讓每個人都受苦,只是因爲有些人使用IE ;-) – underscorePez

+0

是的,真正的唯一原因是我會說不使用類似的東西會是因爲處理兩種不同渲染能力的可能性增加了複雜性,根據項目情況可能會有所不同。 –