跨浏览器添加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;
			}
		},
		getEvent:function(event){
			return event?event:window.event;
		},
		getTarget:function(event){
			return event.target||event.srcElement;
		},
		/**
		 * 获取事件相关元素
		 * @param event
		 * @returns
		 */
		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;
			}
		},
		/**
		 * 获取按下的鼠标键掩码
		 * @param event
		 * @returns
		 */
		getMouseButton:function(event){
			if(document.implementation.hasFeature("MouseEvents", "2.0")){
				return event.button;
			}else {
				switch (event.button) {
				case 0:
				case 1:
				case 3:
				case 5:
				case 7:
					return 0;
				case 2:
				case 6:
					return 2;
				case 4:
					return 1;
				}
			}
		},
		/**
		 * 获取鼠标滑轮属性
		 * @param event
		 * @returns
		 */
		getWheelDelta:function(event){
			if(event.wheelDelta){
				return (client.engine.opera&&client.engine.opera<9.5 ?
						-event.wheelDelta : event.wheelDelta);
			}else {
				return -event.detail * 40;
			}
		},
		/**
		 * 获取键盘掩码
		 * @param event
		 * @returns
		 */
		getCharCode:function(event){
			if(typeof event.charCode == "number"){
				return event.charCode;
			}else {
				return event.keyCode;
			}
		},
		/**
		 * 获取剪贴板数据
		 * @param event
		 * @returns
		 */
		getClipboardText:function(event){
			var clipboardData=(event.clipboardData || window.clipboardData);
			return clipboardData.getData("text");
		},
		/**
		 * 设置剪贴板数据
		 * @param event
		 * @param value
		 * @returns
		 */
		setClipboardText:function(event,value){
			if(event.clipboardData){
				return event.clipboardData.setData("text/plain",value);
			}else if(window.clipboardData){
				return window.clipboardData.setData("text",value);
			}
		},
		preventDefault:function(event){
			if(event.preventDefault){
				event.preventDefault();
			}else {
				event.returnValue=false;
			}
		},
		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;
			}
		},
		stopPropagation:function(event){
			if(event.stopPropagation){
				event.stopPropagation();
			}else {
				event.cancelBuble=true;
			}
		}
};


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值