您的位置:首页 > Web前端 > JavaScript

统一javascript中的事件(来自javascript高级程序设计)

2007-04-28 10:10 513 查看

var eventUtil = new Object;






eventUtil.addEventHandler = function(target, eventType, handler) ...{




if (target.addEventListener) ...{


target.addEventListener(eventType, handler, false);




} else if (target.attachEvent) ...{


target.attachEvent("on" + eventType, handler);




} else ...{


target["on" + eventType] = handler;


}


};






eventUtil.removeEventHandler = function(target, eventType, handler) ...{




if (target.removeEventListener) ...{


target.removeEventListener(eventType, handler);




} else if (target.detachEvent) ...{


target.detachEvent("on" + eventType, handler);




} else ...{


target["on" + eventType] = null;


}


};






eventUtil.formatEvent = function(evt) ...{




if (isIE && isWin) ...{


evt.charCode = (evt.type == "keypress") ? evt.keyCode : 0;


evt.eventPhase = 2;


evt.isChar = (evt.charCode > 0);


evt.pageX = evt.clientX + document.body.scrollLeft;


evt.pageY = evt.clientY + document.body.scrollTop;




evt.preventDefault = function() ...{


this.returnvalue = false;


};






if (evt.type == "mouseout") ...{


evt.relatedTarget = evt.toElement;




} else if (evt.type == "mouseover") ...{


evt.relatedTarget = evt.fromElement;


}






evt.stopPropagation = function() ...{


this.cancelBubble = true;


};




evt.target = evt.srcElement;


evt.time = (new Date()).getTime();


}


return evt;


};






eventUtil.getEvent = function() ...{




if (window.event) ...{


return this.formatEvent(window.event);




} else ...{


return EventUtil.getEvent.caller.arguments[0];


}


};



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: