跨浏览器的事件对象

        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;
                }
            },
            // 跨浏览器获取event - 事件状态
            getEvent: function (event) {
                return event ? event : window.event;
            },
            // 跨浏览器获取target - 目标事件
            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()
                } else {
                    event.cancelBubble = true;
                }
            }
        }
                

  

原文地址:https://www.cnblogs.com/ly-qingqiu/p/14473008.html