- DOM節點獲取
//DOM節點相關,主要兼容IE 6 7 8
function nextnode(obj){//獲取下一個兄弟節點
if (obj.nextElementSibling) {
return obj.nextElementSibling;//非IE678支持
} else{
return obj.nextSibling;//IE678支持
};
}
- 事件event獲取源
//event事件問題
document.onclick=function(ev){//谷歌火狐的寫法,IE9以上支持,往下不支持;
var e=ev;
console.log(e);
}
document.onclick=function(){//谷歌和IE支持,火狐不支持;
var e=event;
console.log(e);
}
//兼容寫法;
document.onclick=function(ev){//兼容寫法;
var e=ev||window.event;
var mouseX=e.clientX;//鼠標X軸的座標
var mouseY=e.clientY;//鼠標Y軸的座標
}
3.獲取ClassName問題
- innertext兼容性
Safari、Opera和Chrome支持innerText屬性。
Firefox雖然不支持innerText,但支持作用類似的textContent屬性
var div = document.getElementById("content");
function setInnerText(element, text) {
if (typeof element.textContent == "string") { //Firefox
element.textContent = text;
} else {
element.innerText = text;
}
}
function getInnerText(element) {
return (typeof element.textContent == "string") ? element.textContent : element.innerText;
}
setInnerText(div, "Hello world!");
alert(getInnerText(div)); //"Hello world!"
5.設置監聽事件
//設置監聽事件
function addEvent(obj,type,fn){//添加事件監聽,三個參數分別爲 對象、事件類型、事件處理函數,默認爲false
if (obj.addEventListener) {
obj.addEventListener(type,fn,false);//非IE
} else{
obj.attachEvent('on'+type,fn);//ie,這裏已經加上on,傳參的時候注意不要重複加了
};
}
function removeEvent(obj,type,fn){//刪除事件監聽
if (obj.removeEventListener) {
obj.removeEventListener(type,fn,false);//非IE
} else{
obj.detachEvent('on'+type,fn);//ie,這裏已經加上on,傳參的時候注意不要重複加了
};
}