JavaScript 相容性總結

2021-08-07 05:18:07 字數 2297 閱讀 7630

獲取滾動距離的相容

//非chrome

document.documentelement.scrolltop

document.documentelement.scrollleft

//chrome

document.body.scrolltop

document.body.scrollleft

//相容寫法:由於瀏覽器只支援其中一種,另一種為0,因此採用相加的方式

var scrolltop = document.documentelement.scrolltop + document.body.scrolltop

//更為穩妥的相容寫法:

var scrolltop = document.documentelement.scrolltop || document.body.scrolltop

getelementsbyclassname()  // ie 低版本瀏覽器中無此方法

if(!document.getelementsbyclassname) else 

}

獲取event物件的相容寫法

obj.οnclick= function(evt)
全世界最短ie6判定

if(!-[1,])  else
全世界最無爭議ie判定

if(window.vbarray) else
鍵盤碼獲取

document.οnkeypress=function(e)
阻止事件傳播(冒泡)

e.stoppropagation ? e.stoppropagation() : e.cancelbubble = true;  // 常規瀏覽器 || ie
注:這裡不可使用 

e.cancelbubble?

e.cancelbubble = true

: e.stoppropagation()

因為e.cancelbubble 

是乙個屬性(而非方法),其預設值為 false 

event.target (事件委託時,觸發事件源)

var srcobj = event.target || event.srcelement;
阻止預設行為

event.preventdefault(); //常規瀏覽器

event.returnvalue = false; // ie

e.preventdefault ? e.preventdefault() : e.returnvalue=false;

事件監聽

obj.addeventlistener("click",function(){},true);   //非ie

obj.attachevent("onclick", function(){}); //ie

function addevent(ele, eventtype, func, iscapture) else

}

//懶載入函式

函式柯里化

var addevent = (function()

} else

}})();

刪除某元素監聽事件

(function removeevent()

} return function(ele,eventname,callback,iscapture)

})();

request物件的相容(ajax請求中使用)

相容性(空格相容性)

在chrome與firefox下顯示的寬度不同,原因是兩個瀏覽器的預設字型不同,給html規定字型即可解決。下面有各種形式的空格,各有不同 不換行空格,按下空格鍵所產生的空格,受字型影響明顯 ensp 半形空格 em寬度的一半 乙個小寫字母的寬度 基本不受字型影響 emsp 全形空格 乙個em寬度 ...

CSS相容性總結

一.針對ie6的 important 必須寫在前面,例如 background 9c6 important background 999 二.css hack ie6 專用 height 100px ie7 專用 height 100px ie6 ie7 共用 height 100px ie7 ff...

相容性小結

1.不同瀏覽器的標籤預設的外補丁和內補丁不同。解決 2.chorme瀏覽器下字型最小12px 解決 font size 12px webkit transform origin x 0 webkit transform scale 0.5833333333333334 scale 12 3.ie瀏覽...