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

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

        });

  

你可能感兴趣的:(浏览器)