当前,我通过创建画布并尝试获取"webgl""experimental-webgl"的上下文来检测WebGL是否可用。如果两个都返回null,则将禁用WebGL。现在的问题是,当用户安装了IEWebGL时,应用程序本身可以正常工作,但是两个getContext都返回null,因此可用性检查返回false。当我访问IEWebGL网站(http://iewebgl.com/Developer.aspx#CreatingTutorial)上的教程时,我可以看到他们完全按照我的方式来做。我想念什么吗?
一些代码:

var contextNames = ["webgl", "experimental-webgl"];

var isEnabled = false;
for(var i = 0, length = contextNames.length; i < length; i++)
    if(canvas[0].getContext(contextNames[i]))
        isEnabled = true;

最佳答案

您没有在IEWebGL中创建canvas元素,而是使用了对象元素。尝试以此替换您的canvas元素,看看它是否有效:

<object type="application/x-webgl" id="canvas"></object>

07-24 18:06