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.