在我們寫js原生語法的時候,不可忽略的是**在不同瀏覽器上執行的相容問題,這是我總結的一些關於js**相容問題的常見處理寫法
1.獲取當前網頁的寬度和高
window.innerwidth?window.innerwidth:document.documentelement.clientwidth;
window.innerheight?window.innerheight:document.documentelement.clientheight;
2.獲取滾動條距頂端的距離var scrolltop=document.documentelement.scrolltop||document.body.scrolltop;
3.獲取滾動條距左邊的距離var scrolltop=document.documentelement.scrollleft||document.body.scrollleft;
4.通過byclassname獲取頁面元素的相容
分析:如果支援就直接獲取,如果不支援,通過bytagname獲取,需要遍歷所有的標籤,找到需要的classname的元素
function byclassname(obj,classname)
else
6.獲取非行內樣式的相容function getstyle(obj,attr)
7.獲取事件物件的編碼值obox.onclick=function(evt)
8.獲取滑鼠按鍵的編碼值function getbutton(evt)else if(window.event)
} }
9.獲取鍵盤按鍵的編碼值//onkeydown和onkeyup事件
var code=event.keycode||event.which;
//onkeypress事件
var code=event.keycode||event.which||charcode
10.獲取事件源var target=e.target||e.srcelement;
11.阻止事件冒泡var e=eve||window.event;
e.stoppropagation?e.stoppropagation():e.cancelbubble=true;
12.阻止瀏覽器預設行為的相容(表單提交、超連結、右鍵選單)function stopdefault(eve)
13.事件監聽function addeventlistener(obj,event,fn,boo)else if(attachevent)else
}
14.移除事件監聽function removeeventlistener(obj,event,fn,boo)else if(detachevent)else
}
常用原生JS方法總結(相容性寫法)
新增事件方法 1 2 3 4 5 6 7 8 9 addhandler function element,type,handler elseif element.attachevent else 移除之前新增的事件方法 1 2 3 4 5 6 7 8 9 removehandler function...
原生JS方法個人總結(相容性寫法)
獲取非行內樣式的相容 注釋 1.style 獲取行間樣式。2.currentstyle 獲取計算後的樣式,也叫當前樣式 最終樣式。3.getcomputedstyle obj,false 在ff新版本中只需要第乙個引數,即操作物件,第二個引數寫 false 也是大家通用的寫法,目的是為了相容老版本的...
常用原生JS方法總結(相容性寫法)
經常會用到原生js來寫前端。但是原生js的一些方法在適應各個瀏覽器的時候寫法有的也不怎麼一樣的。今天下班有點累。就來總結一下簡單的東西吧 備註 一下的方法都是包裹在乙個eventutil物件裡面的,直接採用物件字面量定義方法了。新增事件方法 addhandler function element,t...