1. 程式人生 > >JS中一些常用的兼容寫法

JS中一些常用的兼容寫法

tar opp etc which button 時間 eve 事件對象 event

1.滾動條到頂端的距離
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
2.滾動條到左端的距離
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
3.通過class屬性獲取頁面元素對象的兼容
function byClassName(obj,className){
if(obj.getElementsByClassName){
return obj.getElementsByClassName(className);
}else{
var arr = [];
var eles = obj.getElementsByTagName(‘*‘);
for(var i = 0; i < eles.length; i++){
if(eles[i].className === className){
arr.push(eles[i]);
}
}
return arr;
}
}
4.獲取非行內樣式的兼容
function getStyle(obj,attr){
return obj.currentStyle ? obj.currentStyle[attr] : window.getComputedStyle(obj.1)[attr];
}
5.獲取事件對象的兼容
var e = event || window.event;
6.獲取鼠標編碼值的兼容
function getButton(event){
var e = event || window.event;
if(event){
return e.button;
}else if(window.event){
switch(e.Button){
case 1 : return 0;
case 4 : return 1;
case 2 : return 2;
}
}
}
七,獲取鍵盤編碼值的兼容
var code = event.keyCode || event.charCode || event.which;
八.阻止時間冒泡的兼容
event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
九,阻止超鏈接的默認行為
event.preventDefault ? event.preventDefault() : event.returnValue = false;
十,添加時間監聽器
function addEventListener(obj,event,fn,boo){
if(obj.addEventListener){
obj.addEventListener(event,fn,boo);
}else if(obj.attachEvent){
obj.attachEvent(‘on‘ + event,fn);
}
}
十一,移除時間監聽器
function removeEventListener(obj,event,fn,boo){
if(obj.removeEventListener){
obj.removeEventListener(event,fn,boo);
}else if(obj.detachEvent){
obj.detachEvent(‘on‘ + event,fn)
}
}
十二,獲取事件源的兼容
var target = e.target || e.srcElement;







JS中一些常用的兼容寫法