昨天做一个JavaScript与Flash交互项目,在其它浏览器都正常运行,唯独IE6、IE7、部分的版本IE8报错。查了很久代码,也未发现是哪里的问题。于是开始逐行try...catch,结果在window.document.video这一句报错了。
IE不区分大小写导致
video是Flash的ID,为什么其它浏览器不报错,偏偏这里报错呢?经查,发现页面也有一个div标签,id为Video,难道是大小写的问题?于是把页面div标签id改为video,问题解决。
做DEMO验证
难道IE对标签属性值不区分大小写吗?于是我自己做了一个测试。
在页面中有两个div,标签分别是小写qttc与大写QTTC。
然后使用 doument.getElementById去查找。
HTML
<div style="border:1px solid #999; padding:10px;margin:10px; width:450px;">
<div id="qttc">这里是id=qttc的div</div>
</div>
<div style="border:1px solid #999; padding:10px;margin:10px; width:450px;">
<div id="QTTC">这里是id=QTTC的div</div>
</div>
JavaScript
console.log(document.getElementById('qttc').innerHTML)
// Output: 这里是id=qttc的div
console.log(document.getElementById('QTTC').innerHTML)
// Output: 这里是id=QTTC的div
Firefox、Chrome、Safari和IE9都是以下输出,表示区分大小写
这里是id=qttc的div
这里是id=QTTC的div
IE6输出如下
这里是id=qttc的div
这里是id=qttc的div
可见IE6不区分大小写