事件不同浏览器的兼容性问题

事件对象的兼容问题

事件event兼容写法:event = event || window.event;    (ie的为Window.event)

事件目标:target = event.target|| event.srcElement;  (ie的为event.srcElement)

取消默认行为:

function(event){
   if(event.preventDefalut){
          event.preventDefault();
   }else{
           event.returnValue = false;  
}
}

阻止冒泡:cancalBubble属性取消ie的事件冒泡,IE不支持事件捕获。而stopPropagation()为取消事件捕获和冒泡

function(event){
   if(event.preventDefalut){
          event.stopPropagation();
   }else{
           event.cancelBubble = true;  
}
}

事件处理程序的兼容问题

DOM2级事件处理程序:添加addEventListener()及移除removeEventListener();三个参数element,addEventListener("click",funcition, false/true), "click"为事件类型,function为函数或者函数名,false为在冒泡阶段调用事件处理程序,true为捕获阶段。需要调用移除时removeEventListener需要addEventListener的function必须为函数名

IE事件处理程序:添加attachEvent("onclick",function) 没有false/true由于IE8及更早的版本只支持事件冒泡。 移除是datachEvent("onlick",function) function为函数名,匿名函数不能移除。