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...