好程式設計師分享javascript中的常見的相容寫法
好程式設計師分享 javascript 中的常見的相容寫法
1 .獲取後一個兄弟節點的相容寫法
var nextElement=oLi3.nextElementSibling||oLi3.nextSibling;
2. 獲取前一個兄弟節點相容寫法
var previousElement = oLi3.previousElementSibling || oLi3.previousSibling;
3. childNodes的相容使用
function getChildNodes(ele) {
//1.定義一個空的陣列
var arr = [];
//2.獲取指定元素
var oEle = document.querySelector(ele);
//3.將元素下邊的所有兒子拿到
for (var i = 0; i < oEle.childNodes.length; i++) {
//4.變數判斷真的兒子(元素節點nodeType==1)
if (oEle.childNodes[i].nodeType == 1) {
//5.將真兒子新增到陣列裡
arr.push(oEle.childNodes[i])
}
}
//6.返回陣列
return arr;
}
4.拿到第一個兒子
var No1 = oBox.firstElementChild || oBox.firstChild;
5.拿到最後 個兒子
var oLast = oBox.lastElementChild || oBox.lastChild;
6.事件目標物件相容
var t = event.target || event.srcElement;
捲軸的相容寫法
一 簡單相容寫法
document.documentElement.scrollTop||document.body.scrollTop
二 高階相容寫法
function myScroll() {
// ie9以上, google,火狐都能用
if (window.pageXOffset != undefined) {
return {
"left": window.pageXOffset,
"top": window.pageYOffset
}
} else if (document.compatMode == "CSS1Compat") {
// 標準 DTD (有宣告頭)
return {
"left": document.documentElement.scrollLeft,
"top": document.documentElement.scrollTop
}
}
// 非標準 沒有 DTD (沒有宣告頭)
return {
"left": document.body.scrollLeft,
"top": document.body.scrollTop
}
}
html5的新標籤在 ie 6 7 8 下有相容問題,解決原理是 動態建立標籤 document.createElement,我可以是快速使用html5shiv外掛
事件物件的相容寫法
var e=evt||window.event;
鍵盤事件
var keyCode = e.keyCode || e.which;
獲取樣式的相容寫法
function getStyle(obj, attr) {
// 非ie,google,火狐
if (window.getComputedStyle) {
return window.getComputedStyle(obj, null)[attr];
}
//ie 6 8 9
return obj.currentStyle[attr];
}
阻止冒泡的相容
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
阻止預設行為
if (e.preventDefault) {
e.preventDefault()
} else {
e.returnValue = false;
}
事件監聽的相容寫法
oBtn.addEventListener("click", function () {
alert("長沙千鋒老羅最帥");
}, {
once: true, // 只能被點一次
useCapture: true // true||false
})
//obj 給指定的元素新增事件
//type 事件的型別(click,mouseenter..)
//fn 函式名稱
//useCapTure 捕獲還是冒泡
function addEvent(obj, type, fn, useCapTure) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, useCapTure)
} else {
obj.attachEvent("on" + type, fn)
}
}
事件監聽移除相容寫法
function removeEvent(obj, type, fn, useCapTure) {
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, useCapTure);
} else {
obj.detachEvent("on" + type, fn);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2688129/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師分享JavaScript中8個常見的陷阱程式設計師JavaScript
- 好程式設計師Java教程分享JavaScript常見面試題五程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題四程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題三程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題二程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題一程式設計師JavaScript面試題
- 好程式設計師分享ApacheSpark常見的三大誤解程式設計師ApacheSpark
- 好程式設計師web前端分享JavaScript中常見的反模式程式設計師Web前端JavaScript模式
- 好程式設計師分享JavaScript幾個最常見的錯誤程式設計師JavaScript
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 好程式設計師分享javascript中陣列化的一般見解程式設計師JavaScript陣列
- 好程式設計師web前端分享用JavaScript實現的5個常見函式程式設計師Web前端JavaScript函式
- 好程式設計師分享JavaScript學習筆記ES5中常見的陣列方法程式設計師JavaScript筆記陣列
- 好程式設計師Java教程分享XML常見面試題程式設計師JavaXML面試題
- 好程式設計師分享:Java面試題常見問題程式設計師Java面試題
- 好程式設計師Java分享Java語言中的常見的跳脫字元程式設計師Java字元
- 好程式設計師Python教程分享常見的Python面試題程式設計師Python面試題
- 好程式設計師Web前端分享無法忽視的JavaScript技巧程式設計師Web前端JavaScript
- 好程式設計師分享JavaScript建立物件的方式!程式設計師JavaScript物件
- 好程式設計師web前端教程分享Jquery常見面試題程式設計師Web前端jQuery面試題
- 好程式設計師web前端教程分享JavaScript簡寫方法程式設計師Web前端JavaScript
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 好程式設計師技術分享淺談JavaScript中的閉包程式設計師JavaScript
- 好程式設計師Python培訓分享Python程式設計中常見的異常處理程式設計師Python
- 好程式設計師web前端培訓分享小白學web常見的問題程式設計師Web前端
- 好程式設計師JavaScript教程分享JavaScript中變數和作用域程式設計師JavaScript變數
- 好程式設計師Java培訓分享Java效能常見命令有哪些程式設計師Java
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 好程式設計師web前端教程分享HTML/CSS部分常見面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師web前端培訓分享JavaScript基礎語法程式設計師Web前端JavaScript
- 好程式設計師Java教程分享Java中經常出現的問題程式設計師Java
- 好程式設計師Java教程分享Java多執行緒常見面試題程式設計師Java執行緒面試題
- 好程式設計師Java學習路線分享Spring常見面試題程式設計師JavaSpring面試題
- 好程式設計師大資料培訓分享常見的Hadoop和Spark專案程式設計師大資料HadoopSpark
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師web前端培訓React中事件的寫法總結程式設計師Web前端React事件
- 好程式設計師分享Java常見面試題Tomcat最佳化經驗程式設計師Java面試題Tomcat