js兼容

1.事件的兼容
var ev=ev||window.event;


2.取消冒泡的兼容

function cancelbubble(ev){
  var ev=ev||window.event;
  if(ev.stopPropagation){
    ev.stopPropagation();
  }else{
    ev.cancelBubble=true;
  }
}


3.阻止浏览器默认事件的兼容

function preventDefaule(ev){
  var ev = ev ||window.event;
  if(ev.preventDefault){
    ev.preventDefault();
  }else{
    ev.returnValue = false;
  }
}


4.滚动条的兼容
var scroll=document.body.scrollTop||document.documentElement.scrollTop


5.获取元素属性的兼容
getComputedStyle(obj).attr   obj.currentStyle.attr


6.键盘事件的兼容
event.keyCode   event.which


7.addEventListener和attachEvent兼容

 target.addEventListener("click", fun, false); --标准浏览器

 target.attachEvent("onclick",fun); --IE浏览器(执行顺序按照绑定的反序)

 removeEventListener()/detachEvent() 移除事件绑定的参数和添加事件绑定是一致的。

 

封装事件绑定
//添加事件
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);
      }
}
//调用
addEvent(aBtn[0], "click", fn, false);
function fn(){
      alert("click 按钮1");
}
aBtn[1].onclick = function(){
      removeEvent(aBtn[0], "click", fn, false);
}
8.ajax对象的兼容
var ajax=new XMLHttpRequest();//标准浏览器
var ajax=new ActiveXObject('Microsoft.XMLHTTP');//ie6*/
     var ajax=null;
      try{
          ajax=new XMLHttpRequest();
       }catch(e){
         ajax=new ActiveXObject('Microsoft.XMLHTTP');
      }

 

posted on 2017-09-12 20:26  Dishonestman  阅读(125)  评论(0)    收藏  举报