JS中出現的相容性問題的總結

2021-08-23 12:41:48 字數 1681 閱讀 9278

1.關於獲取行外樣式 currentstyle 和 getcomputedstyle 出現的相容性問題

我們都知道js通過style不可以獲取行外樣式,當我們需要獲取行外樣式時:

我們一般通過這兩個方法獲取行外樣式:

ie下: currentstyle

chrome,ff下: getcomputedstyle(odiv,false)

相容兩個瀏覽器的寫法:

if(odiv.currentstyle)else

*注:在解決很多相容性寫法時,都是用if..else..

封裝乙個獲取行外樣式的函式:(相容所有瀏覽器,包括低版本ie6,7)

funtion getstyle(obj,name)else

}呼叫:getstyle(odiv,'width');

2.關於用「索引」獲取字串每一項出現的相容性問題:

對於字串也有類似於 陣列 這樣的通過 下標索引 獲取每一項的值,

var str="abcde";

aletr(str[1]);

但是低版本的瀏覽器ie6,7不相容

相容方法:str.charat(i)    //全部瀏覽器都相容

var str="abcde";

for(var i=0;i文字節點

--nodetype=1-->元素節點

例: 獲取ul裡所有的子節點,讓所有的子節點背景色變成紅色

獲取元素子節點相容的方法:

var oul=document.getelementbyid('ul');

for(var i=0;i

5.關於使用 event物件,出現的相容性問題

如: 獲取滑鼠位置

ie/chrom: event.clientx;event.clienty

ff/ie9以上/chrom: 傳參ev--> ev.clientx;ev.clienty

獲取event物件相容性寫法: var oevent==ev||event;

document.oncilck=function(ev)

}6.關於為乙個元素繫結兩個相同事件:attachevent/attacheventlister 出現的相容問題

事件繫結:(不相容需要兩個結合做相容if..else..)

ie8以下用: attachevent('事件名',fn);

ff,chrome,ie9-10用: attacheventlister('事件名',fn,false);

多事件繫結封裝成乙個相容函式:

function myaddevent(obj,ev,fn)else

}myaddevent(obtn,'click',function());

myaddevent(obtn,'click',function());

7.關於獲取滾動條距離而出現的問題

當我們獲取滾動條滾動距離時:

ie,chrome: document.body.scrolltop

ff: document.documentelement.scrolltop

相容處理:var scrolltop=document.documentelement.scrolltop||document.body.scrolltop

js相容性問題

1.event物件 ie 有window.event物件 ff 沒有window.event物件 解決方法 傳入event引數再進行判斷 function test event 2.滑鼠當前座標 含滾動 ie event.offsetx 和 event.offsety ff event.layerx...

相容性問題總結

以便面試被問到的時候什麼都說不出來 不過現在已經不是之前需要關注ie6那些怪異相容性問題的時代了,ie最多支援到8。除了ie8的相容性問題外,還有一些移動端的相容問題。面試中被問到的話,最好結合自己實際的經驗說一下,什麼情況下遇到的,怎麼處理的,而不是背書。當初ie8發布時,相對於ie6 7已經做出...

相容性問題總結

1 解決方案 img2 在ie7下的inline block沒用。解決方案 display inline block display block 3 標籤之間有空格。解決方案 浮動。如果標籤少的話就變成一行。如 a 插入 a a a 4 z index的問題,主要是在於設定父級的z index。且p...