1.集合类对象问题
说明:IE下,可以使用()或[]获取集合类对象;
Firefox下,只能使用[]获取集合类对象.
解决方法:统一使用[]获取集合类对象.
<script type="text/javascript"> var a = new Number(0); var b = new Number(1); var c = new Date(); var tem = [a,b,c]; for(var i = 0; i < tem.length; i++){ document.write(tem[i] + "</br>"); } </script>
但是当使用document.write(tem(0) + "</br>")时, IE8报错,缺少函数,Firefox报错函数未定义,所以我的测试结果是IE 也不可以使用()来获取集合类对象
2.HTML对象获取问题
FireFox:document.getElementById("idName");
ie:document.idname或者document.getElementById("idName").
解决办法:统一使用document.getElementById("idName");
完全兼容的代码:
<body> <div id="test"></div> <script type="text/javascript"> var test = document.getElementById("test"); test.innerHTML = "Just test"; </script> </body>
但是把代码改为 var test = document.test; IE报错test is null or not an object ,FireFox 报错test is undefined。
所以其实这种访问方式在IE里面也不可以。
3.const问题
说明:Firefox下,可以使用const关键字或var关键字来定义常量;
IE下,只能使用var关键字来定义常量.
解决方法:统一使用var关键字来定义常量.
测试结果: FireFox可以使用const关键字,IE则提示语法错误
4.window.event问题
说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.
Firefox必须从源处加入event作参数传递。Ie忽略该参数,用window.event来读取该event。
解决方法:
Submitted(event)"/> …
<script language="javascript"> function Submitted(evt) { evt=evt?evt:(window.event?window.event:null); } </script>
测试结果:如以上解决办法一致。
5.event.x与event.y问题
说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;
Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.
解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.