IE部分版本JavaScript获取ID不区分大小写

昨天做一个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不区分大小写

分享

TITLE: IE部分版本JavaScript获取ID不区分大小写

LINK: https://www.qttc.net/200-ie-id-case.html

NOTE: 原创内容,转载请注明出自琼台博客