Javascript 多平台(Chrome、IE、Firefox)

Javascript 多平台(Chrome、IE、Firefox),javascript,internet-explorer,activex,html5-canvas,three.js,Javascript,Internet Explorer,Activex,Html5 Canvas,Three.js,我不理解为什么这个脚本在IE中不起作用,而在Firefox和Chrome中却起作用。当我尝试在IE中使用此脚本时,我收到消息“ACTIVEX停止脚本” 请帮帮我 <!DOCTYPE html> <html> <head> <title>Getting Started with Three.js</title> <script type="text/javascript" src="http://www.html5canv

我不理解为什么这个脚本在IE中不起作用,而在Firefox和Chrome中却起作用。当我尝试在IE中使用此脚本时,我收到消息“ACTIVEX停止脚本”

请帮帮我

<!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>

开始使用Three.js
window.onload=函数(){
var renderer=new THREE.WebGLRenderer();
设置大小(800600);
document.body.appendChild(renderer.doElement);
var scene=new THREE.scene();
var摄像机=新的三视角摄像机(
35,//视野
800/600,//长宽比
0.1,//近平面
10000/远平面
);
摄像机。位置。设置(15,10,10);
摄像机。注视(场景。位置);
场景。添加(摄影机);
var cube=新的三个网格(
新三.立方计量法(5,5,5),
新的3.MeshLambertMaterial({color:0xFF0000})
);
场景.添加(立方体);
var灯=新的三点灯(0xFFFF00);
光。位置。设置(10,0,10);
场景。添加(灯光);
渲染器。渲染(场景、摄影机);
};

Three.js WebGL渲染器在IE中不工作(不支持WebGL)

试一试

var renderer=new THREE.CanvasRenderer()


相反,Three.js WebGLRenderer在IE中不起作用(不支持WebGL)

试一试

var renderer=new THREE.CanvasRenderer()


相反

作为上述非常简单的解决方案的替代方案,您可以使用alteredq和mrdoob的伟大的,它包含在中。如果使用如下代码,则可以使用WebGL渲染器作为默认值,并且仅在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);

作为上述非常简单的解决方案的替代方案,您可以利用alteredq和mrdoob的伟大,它包含在中。如果使用如下代码,则可以使用WebGL渲染器作为默认值,并且仅在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);

同意。它总是值得提供WebGL渲染器给您的访问者谁可以使用它。没有必要让每个人都受苦,只是因为有些人使用IE;-)是的,我说不使用这种东西的唯一原因是因为处理两套不同渲染功能的可能性增加了复杂性,这可能有点取决于项目。同意。它总是值得提供WebGL渲染器给您的访问者谁可以使用它。没有必要让每个人都受苦,只是因为有些人使用IE;-)是的,我不想使用这样的东西的唯一原因是因为处理两组不同的渲染功能的可能性增加了复杂性,这可能有点取决于项目。