我們討論的主題CSS網頁佈局,最令大家頭疼的問題就是瀏覽器兼容性,雖然52CSS.com介紹過很多這方向的知識,但依然讓很多開發人員暈頭轉向,今天的這篇文章,將列出css和javascript在IE和Firefox中二十三個不同點,希望對大家的學習有所幫助。
一、document.formName.item("itemName") 問題問題說明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。
解決方法:統一使用document.formName.elements["elementName"]。
二、集合類別物件問題 問題說明:IE下,可以使用 () 或 [] 取得集合類別物件;Firefox下,只能使用 [ ]取得集合類別物件。
解決方法:統一使用 [] 取得集合類別物件。
三、自訂屬性問題 問題說明:IE下,可以使用取得常規屬性的方法來取得自訂屬性,也可以使用getAttribute() 取得自訂屬性;Firefox下,只能使用getAttribute() 取得自訂屬性。
解決方法:統一透過 getAttribute() 取得自訂屬性。
四、eval("idName")問題 問題說明:IE下,可以使用eval("idName") 或getElementById("idName") 來取得id 為idName 的HTML物件;Firefox下,只能使用getElementById ("idName") 來取得id 為idName 的HTML物件。
解決方法:統一使用 getElementById("idName") 來取得 id 為 idName 的HTML物件。
五、變數名稱與某HTML物件ID相同的問題 問題說明:IE下,HTML物件的ID可以作為document 的下屬物件變數名稱直接使用,Firefox下則不能;Firefox下,可以使用與HTML物件ID相同的變數名,IE下則不能。
解決方法:使用 document.getElementById("idName") 取代 document.idName。最好不要取HTML物件ID相同的變數名,以減少錯誤;在宣告變數時,一律加上var關鍵字,以避免歧義。
六、const問題 問題說明:Firefox下,可以使用const關鍵字或var關鍵字來定義常數;IE下,只能使用var關鍵字來定義常數。
解決方法:統一使用var關鍵字定義常數。
七、input.type屬性問題 問題說明:IE下 input.type 屬性為唯讀;但是Firefox下 input.type 屬性為讀寫。
解決方法:不修改 input.type 屬性。如果必須要修改,可以先隱藏原來的input,然後在同樣的位置再插入一個新的input元素。
八、window.event問題 問題說明:window.event 只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發生的現場使用。
解法:在事件發生的函式上加上event參數,在函式體內(假設形參為evt)使用 var myEvent = evt?evt:(window.event?window.event:null)
範例: