首页 > 语言 > JavaScript > 正文

常用原生JS兼容性写法汇总

2024-05-06 14:59:01
字体:
来源:转载
供稿:网友

就来总结一下简单的东西

备注:一下的方法都是包裹在一个EventUtil对象里面的,直接采用对象字面量定义方法了。。。

①添加事件方法

addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法  element.addEventListener(type, handler, false); }else if (element.attachEvent){//检测是否为IE级方法  element.attachEvent("on" + type, handler); } else {//检测是否为DOM0级方法  element["on" + type] = handler; }}

②移除之前添加的事件方法

removeHandler:function(element, type, handler){  if (element.removeEventListener){   element.removeEventListener(type, handler, false);  } else if (element.detachEvent){   element.detachEvent("on" + type, handler);  } else {   element["on" + type] = null;  } }

③获取事件及事件对象目标

//获取事件对象的兼容性写法 getEvent: function(event){  return event ? event : window.event; }, //获取事件对象目标的兼容性写法 getTarget: function(event){  return event.target || event.srcElement; }

④阻止浏览器默认事件的兼容性写法

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

⑤阻止事件冒泡的兼容性写法

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

⑥mouseover和mouseout 事件才包含的获取相关元素的方法

//mouseover和mouseout 事件才包含的获取相关元素的方法getRelatedTarget: function(event){ if (event.relatedTarget){  return event.relatedTarget; } else if (event.toElement){  return event.toElement; } else if (event.fromElement){  return event.fromElement; } else {  return null; }}

⑦鼠标滚轮判断

对于mousedown 和mouseup 事件来说,则在其event 对象存在一个button 属性,
表示按下或释放的按钮。DOM的button 属性可能有如下3 个值:0 表示主鼠标按钮,1 表示中间的鼠
标按钮(鼠标滚轮按钮),2 表示次鼠标按钮。在常规的设置中,主鼠标按钮就是鼠标左键,而次鼠标
按钮就是鼠标右键。
IE8 及之前版本也提供了button 属性,但这个属性的值与DOM 的button 属性有很大差异。
 0:表示没有按下按钮。
 1:表示按下了主鼠标按钮。
 2:表示按下了次鼠标按钮。
 3:表示同时按下了主、次鼠标按钮。
 4:表示按下了中间的鼠标按钮。
 5:表示同时按下了主鼠标按钮和中间的鼠标按钮。
 6:表示同时按下了次鼠标按钮和中间的鼠标按钮。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选