js 事件兼容
程序员文章站
2022-04-27 13:14:49
...
(function(window) {
window.EventUtil ={
addEventHandler:function(element,type,handler){
if(element.addEventListener)
element.addEventListener(type,handler,false);
else if(element.attachHaattachEventdler)
element.attachEvent('on' + type,handler)
else
element['on' + type] = null;
},
removeEventHandler: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;
},
formatEvent:function(oEvent){
var isIE=/msie/i.test(navigator.userAgent),
isWin=/win/i.test(navigator.userAgent);
if(isIE && isWin){
oEvent.charCode=(oEvent.type == "keypress")?oEvent.keyCode:0;
oEvent.eventPhase =2;
oEvent.isChar=(oEvent.charCode>0);
oEvent.pageX=oEvent.clientX+document.body.scrollLeft;
oEvent.pageY=oEvent.clientY+document.body.scrollTop;
oEvent.preventDefault=function(){
this.returnvalue=false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget=oEvent.toElement;
}else if(oEvent.type=="mouseover"){
oEvent.relatedTarget=oEvent.fromElement;
}
oEvent.stopPropagation=function(){
this.cancelBubble=true;
}
oEvent.target=oEvent.srcElement;
oEvent.time=(new Date()).getTime();
}
return oEvent;
},
getEvent: function(event){
if(event)
return EventUtil.getEvent.caller.arguments[0];
else
return this.formatEvent(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;
}
};
})(window);
window.EventUtil ={
addEventHandler:function(element,type,handler){
if(element.addEventListener)
element.addEventListener(type,handler,false);
else if(element.attachHaattachEventdler)
element.attachEvent('on' + type,handler)
else
element['on' + type] = null;
},
removeEventHandler: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;
},
formatEvent:function(oEvent){
var isIE=/msie/i.test(navigator.userAgent),
isWin=/win/i.test(navigator.userAgent);
if(isIE && isWin){
oEvent.charCode=(oEvent.type == "keypress")?oEvent.keyCode:0;
oEvent.eventPhase =2;
oEvent.isChar=(oEvent.charCode>0);
oEvent.pageX=oEvent.clientX+document.body.scrollLeft;
oEvent.pageY=oEvent.clientY+document.body.scrollTop;
oEvent.preventDefault=function(){
this.returnvalue=false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget=oEvent.toElement;
}else if(oEvent.type=="mouseover"){
oEvent.relatedTarget=oEvent.fromElement;
}
oEvent.stopPropagation=function(){
this.cancelBubble=true;
}
oEvent.target=oEvent.srcElement;
oEvent.time=(new Date()).getTime();
}
return oEvent;
},
getEvent: function(event){
if(event)
return EventUtil.getEvent.caller.arguments[0];
else
return this.formatEvent(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;
}
};
})(window);
上一篇: 海外推广 如何最大化海外网红营销效果?
推荐阅读
-
PHP JS Ip地址及域名格式检测代码_PHP教程
-
解决3.01版的jquery.form.js中文乱码问题的解决方法_jquery
-
google跟踪代码管理器gtm无法给相同class元素绑定click事件埋点解决
-
1060游戏本LOL卡成PPT?官方回应:腾讯与Windows出现兼容性问题
-
js中settimeout方法加参数_javascript技巧
-
JS请求servlet功能示例
-
js页面存储之刷新内容不丢失实现方法
-
Oracle中利用10053事件来分析Oracle是如何做出最终的执行计划
-
php-js如何将canvas生成的图像保存为图片,放到指定位置
-
js拖动div 当鼠标移动时整个div也相应的移动_javascript技巧