IE和FF之js 區別

2021-05-24 13:22:32 字數 2647 閱讀 9101

function getevent() //同時相容ie和ff的寫法

}func=func.caller;

}return null;

}1.   使用 document.getelementbyid 替代 document.all(ie)

2.        如果控制項只有 name, 沒有 id, 用 getelementbyid 時 :

ie :可以找到物件

ff :返回 null

解決方法:所有控制項必須設定 id 屬性

3.        evel:

ie :支援, 利用 eval(idname) 可以取得 id 為 idname 的 html 對 象

ff :不支援。

解決方法:統一使用 getelementbyid(idname) 代替 eval(idname) 。

4.        event :

ie :用全域性物件 window.event

ff : event 只能在事件發生的現場使 用, 在呼叫函式時傳入 event 對 象

解決方法:使用之前做一下瀏覽器型別判斷,各用各的。

5.        物件名稱中美元符號『 $』改為使用下劃線『 _』

6.        集合類物件問題

ie: 可以使用 () 或 獲取集合類物件

ff :只能使用 獲取集合類物件

現有**中存在許多,不能在 ff 下執行

解決方法 : 統一使用 獲取集合類物件。 document.form.item("itemname") 這樣的語句改為 document.form.elements["elementname"]

7.        變數名與某 html 物件 id 相同的問題

ie :不能 使用與 html 物件 id 相同的變數 名

ff:可以使用

解決方法: 在宣告變數時,一律加上 var ,以避免歧義,這樣在 ie 中亦可正常執行。

此外,最好不要取與 html 物件 id 相同的變數名,以減少錯誤 。

8.        event 定位問題

ie :支援 event.x 和 event.y

ff :支援 event.pagex 和 event.pagey

解決方法,統一使用 event.clientx 和 event.clienty ,但是在 ff 中 event.clientx 與 event.pagex 有微妙的差別(當整個頁面有滾動條的時候),不過大多數時候是等效的 。如果要完全一樣,可以判斷瀏覽器型別後對應使用。

9.        父結點的問題

ie : parentelement parentelement.children

ff : parentnode parentnode.childnodes

childnodes 的下標的含義在 ie 和 ff 中不同, ff 使用 dom 規範, childnodes 中會插入空白文字節點。一般可以通過 node.getelementsbytagname() 來迴避這個問題。

當 html 中節點缺失時, ie 和 ff 對 parentnode 的解釋不同,例如

ie : input.parentnode 的值為空節點

ff : input.parentnode 的值為 form

ff 中節點沒有 removenode 方法,必須使用如下方法 node.parentnode.removechild(node)

10.    const 問題

現有問題:

ie :不支援 const 關鍵字。如 const constvar = 32; 在 ie 中這是語法錯誤。

ff :支援

解決方法:不使用 const ,以 var 代替 。

11.    body 對 象

ie:在 body 標籤完全被讀入之後才存 在

ff: 在 body 標籤沒有被瀏覽器完全讀入之前就存 在

12.    自定義屬性問題

ie :可以使用獲取常規屬性的方法來獲取自定義屬性 , 也可以使用 getattribute() 獲取自定義屬性

ff :只能使用 getattribute() 獲取自定義屬性 .

解決方法:統一通過 getattribute() 獲取自定義屬性

13.    event.srcelement 問題

ie : even.srcelement

ff : even.target

解決方法 : 使用時判斷瀏覽器型別,各用各的。

14.    模態和非模態視窗

ie :支援模態和非模態視窗

ff :不支援

解決方法:直接使用 window.open(pageurl,name,parameters) 方式開啟新窗 口。 如果需要將子視窗中的引數傳遞歸父視窗 , 可以在子視窗中使用 window.opener 來訪問父窗 口。

15.    innertext

ie : innertext

ff : textcontent

16.    類似 obj.style.height = imgobj.height 的語句

ie :有效

ff :無效

解決方法:統一使用 obj.style.height = imgobj.height + 'px';

IE和FF區別關於css和js

css 1.ul標籤ff中有padding值,沒有margin,ie中相反 解決辦法 將ul的padding和margin都設為0,js1.ie中innertext在火狐中沒有,使用textcontext 2.在ajax中返回物件狀態ie使用readystate,火狐中必須是readystate,所...

js在IE和FF下的不同

1.document.formname.item itemname 問題 說明 ie下,可以使用document.formname.item itemname 或document.formname.elements elementname firefox下,只能使用document.formname...

IE與FF的CSS區別

ie和ff對盒模型的解釋區別 ie和ff對盒模型的解釋也不一樣,說明 test test 顯示的寬頻是 650px ie box的總寬度是 width padding border margin寬度總和 ff box的總寬度就是 width的寬度,padding border margin的寬度在含...