跨浏览器注册事件和移除事件方案
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) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else if (element.detachEvent) { element.detachEvent("on" + type, handler); } else { element["on" + type] = null; } }, //获取事件对象 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; } }, //阻止事件传播 stopPropagation: function (event) { if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubbles = true; } }, //获取事件目标元素 getRelatedTarget: function (event) { if (event.relatedTarger) { return event.relatedTarget; } else if (event.toElement) { return event.toElement; } else if (event.fromElement) { return event.fromElement; } else { return null; } } } 使用: EventUtil.addHandler(window, "load", function () { console.log("注册"); }); EventUtil.removeHandler(window, "load", function () { console.log("移除注册"); });