var EventUtil={addHandler: function(element, type, handler){ // 添加事件方法if (element.addEventListener){element.addEventListener(type, handler, false); // 添加监听事件,第3个参数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;},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();} esle {event.cancelBubble = true;}}
};
摘自《JavaScript高级程序设》(第3版) P360