크로스 브 라 우 저 자바 script 이벤트 처리 추가

2777 단어 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;
			}
		}
};

좋은 웹페이지 즐겨찾기