firefox和IE瀏覽器相容問題

2021-08-22 20:24:32 字數 3685 閱讀 6310

1.集合類物件問題

說明:ie下,可以使用()或獲取集合類物件;

firefox下,只能使用獲取集合類物件.

解決方法:統一使用獲取集合類物件.

2.html物件獲取問題

firefox:document.getelementbyid("idname");

ie:document.idname或者document.getelementbyid("idname").

解決辦法:統一使用document.getelementbyid("idname");

3.const問題

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

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

解決方法:統一使用var關鍵字來定義常量.

4.window.event問題

說明:window.event只能在ie下執行,而不能在firefox下執行,這是因為firefox的event只能在事件發生的現場使用.firefox必須從源處加入event作引數傳遞。ie忽略該引數,用window.event來讀取該event。

解決方法:

ie&firefox:

submitted(event)"/> …

function submitted(evt)

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.

6.event.srcelement問題

說明:ie下,event物件有srcelement屬性,但是沒有target屬性;

firefox下,even物件有target屬性,但是沒有srcelement屬性.

解決方法:使用obj(obj = event.srcelement ? event.srcelement : event.target;)來代替ie下的event.srcelement或者firefox下的event.target. 請同時注意event的相容性問題。

7.window.location.href問題

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

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

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

8.模態和非模態視窗問題

說明:ie下,可以通過showmodaldialog和showmodelessdialog開啟模態和非模態視窗;firefox下則不能.

解決方法:直接使用window.open(pageurl,name,parameters)方式開啟新視窗。

如果需要將子視窗中的引數傳遞歸父視窗,可以在子視窗中使用window.opener來訪問父視窗.

例如:var parwin = window.opener; parwin.document.getelementbyid("aqing").value = "aqing";

9.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 = "***.html"或window.framename.location = "***.html"來切換frame的內容.

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

10.body問題

firefox的body在body標籤沒有被瀏覽器完全讀入之前就存在;而ie的body則必須在body標籤被瀏覽器完全讀入之後才存在.

11. 事件委託方法

ie:document.body.onload = inject; //function inject()在這之前已被實現

firefox:document.body.onload = inject();

12.firefox與ie的父元素(parentelement)的區別

ie:obj.parentelement

firefox:obj.parentnode

解決方法: 因為firefox與ie都支援dom,因此使用obj.parentnode是不錯選擇.

13.cursor:hand vs cursor:pointer

firefox不支援hand,但ie支援pointer

解決方法: 統一使用pointer

14.innertext在ie中能正常工作透明

ie:filter:progid:dximagetransform.microsoft.alpha(style=0,opacity=60)。

ff:opacity:0.6。

20. css圓角

ie:不支援圓角。

ff: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。

21. css雙線凹凸邊框

ie:border:2px outset;。

ff: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;

22. 對select的options集合操作

列舉元素除了外,selectname.options.item()也是可以的, 另外selectname.options.length, selectname.options.add/remove都可以在兩種瀏覽器上使用。注意在add後賦值元素,否則會失敗(本人試驗如此)。

23. xmlhttp的區別

24.css中的width和padding

在ie7和ff中width寬度不包括padding,在ie6中包括padding.

IE和Firefox瀏覽器相容問題總結

滑鼠及物件座標控制屬性 offsettop 獲取物件相對於版面或由 offsetparent 屬性指定的父座標的計算頂端位置。offsetleft 獲取物件相對於版面或由 offsetparent 屬性指定的父座標的計算左側位置。offsetheight 獲取物件相對於版面或由父座標 offsetp...

ie瀏覽器相容筆記

ie低版本瀏覽器預設很多標籤是自帶樣式的。ul預設室友padding left 40px li標籤的預設樣式是跟其他瀏覽器不一樣的。預設帶有左邊距16px左右,設定屬性如下即可解決list style position outside position後記得在relative屬性的元素設定浮層 z ...

ie瀏覽器相容筆記

某某 經理讓你相容ie瀏覽器 我的內心 1.html 寫法不標準。有的html 不夠嚴謹,就會造成在ie瀏覽器下各種的問題。比如標題,最好不要直接用li標籤,最好外面有個div包裹,li列表外面需要有ul標籤包裹。應該載入一段公共css 去除某些樣式的預設初始屬性。body,div,dl,dt,dd...