兼容性(js)

  1. DOM節點獲取
//DOM節點相關,主要兼容IE 6 7 8
  function nextnode(obj){//獲取下一個兄弟節點
    if (obj.nextElementSibling) {
      return obj.nextElementSibling;//非IE678支持
    } else{
      return obj.nextSibling;//IE678支持

    };
  }
  1. 事件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問題

  1. 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,傳參的時候注意不要重複加了
    };
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章