跨浏览器事件对象和事件方法的解决方案

由于,存在IE这种奇葩的浏览器存在,导致DOM中的许多的方法,和别的浏览器不一样。所以跨浏览器是很有必要的。下面给出事件对象和事件方法的解决方案,源码来自《javascript高级程序设计》一书。

//跨浏览器事件方法.
var EventUtil={
	addHandler:function(element,type,handler){
		if(element.addEventListener){
			element.addEventListener(type,handler,false);
			}else if(element.attachEvent){
				element.attachEvent("on"+type,handler);
				}else{
					element["on"+type]=handler;
					}
		
		}
,
	removeHandler:function(element,type){
		handler=function(){
			}
		if(element.removeEventListener){
			element.removeEventListener(type,handler,false);
			}else if(element.detachEvent){
				element.detachEvent("on"+type,handler);
				}else{
					element["on"+type]=null;
					}
		
		}
,
//跨浏览器事件对象
getEvent:function(){
	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;
			}
	}
	};
这样在,通过调用对象中的方法可以解决跨浏览器的问题,例如:我要为一个按钮添加一个onclick事件处理程序,我就可以这样写:

var btn=document.getElementById("mybtn");
EventUtil.addHandler(btn,"click",function(){alert("hellow world");});



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值