跨浏览器注册事件和移除事件方案

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("移除注册");
        });

  

原文地址:https://www.cnblogs.com/objectboy/p/4097173.html