常見的瀏覽器兼容性問題(上)

1. HTML對象獲取問題

FireFox:document.getElementById("idName");

ie:document.idname或者document.getElementById("idName").

解決辦法:統(tǒng)一使用document.getElementById("idName");

2. const問題

說明:Firefox下,可以使用const關鍵字或var關鍵字來定義常量;

IE下,只能使用var關鍵字來定義常量.

解決方法:統(tǒng)一使用var關鍵字來定義常量.

3. event.x與event.y問題

說明:IE下,event對象有x,y屬性,但是沒有pageX,pageY屬性;

Firefox下,event對象有pageX,pageY屬性,但是沒有x,y屬性.

解決方法:使用mX(mX? ?=? ?event.x? ??? ?event.x? ?:? ?event.pageX;)來代替IE下的event.x或者Firefox下的event.pageX.

4. window.location.href問題

說明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;

Firefox1.5.x下,只能使用window.location.

解決方法:使用window.location來代替window.location.href.

5. frame問題

以下面的frame為例:

(1)訪問frame對象:

IE:使用window.frameId或者window.frameName來訪問這個frame對象.? ?frameId和frameName可以同名。

Firefox:只能使用window.frameName來訪問這個frame對象.

另外,在IE和Firefox中都可以使用window.document.getElementById("frameId")來訪問這個frame對象.

(2)切換frame內容:

在IE和Firefox中都可以使用window.document.getElementById("testFrame").src? ?=? ?"xxx.html"或window.frameName.location? ?=? ?"xxx.html"來切換frame的內容.

如果需要將frame中的參數(shù)傳回父窗口(注意不是opener,而是parent? ?frame),可以在frame中使用parent來訪問父窗口。例如:parent.document.form1.filename.value="Aqing";

6.模態(tài)和非模態(tài)窗口問題

說明:IE下,可以通過showModalDialog和showModelessDialog打開模態(tài)和非模態(tài)窗口;Firefox下則不能.

解決方法:直接使用window.open(pageURL,name,parameters)方式打開新窗口。

如果需要將子窗口中的參數(shù)傳遞回父窗口,可以在子窗口中使用window.opener來訪問父窗口.

例如:var? ?parWin? ?=? ?window.opener;? ?parWin.document.getElementById("Aqing").value? ?=? ?"Aqing";

7. firefox與IE的父元素(parentElement)的區(qū)別

IE:obj.parentElement

firefox:obj.parentNode

解決方法:因為firefox與IE都支持DOM,因此使用obj.parentNode是不錯選擇.

8. document.formName.item(”itemName”)問題

問題說明:IE下,可以使用document.formName.item(”itemName”)或document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。

解決方法:統(tǒng)一使用document.formName.elements["elementName"]。

9.集合類對象問題

問題說明:IE下,可以使用()或[]獲取集合類對象;Firefox下,只能使用[ ]獲取集合類對象。

解決方法:統(tǒng)一使用[]獲取集合類對象。

10.自定義屬性問題

問題說明:IE下,可以使用獲取常規(guī)屬性的方法來獲取自定義屬性,也可以使用getAttribute()獲取自定義屬性;Firefox下,只能使用getAttribute()獲取自定義屬性。

解決方法:統(tǒng)一通過getAttribute()獲取自定義屬性。

交流:477706497

驗證:管

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容