首页 Javascript 正文
255

js兼容主流浏览器的事件处理方法

  • yiqingpeng
  • 2016-03-16
  • 0
  •  
var EventUtil = {
    addHandler: function (element, type, handler) {
        if (element.addEventListener) {
            /*true表示在捕获阶段处理事件,false则是冒泡阶段调用事件处理函数。*/
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);//IE
        } else {
            elemenlc_"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 {
            elemenlc_"on" + type = null;
        }
    },
    fmtEvent: function (event) {
        return event ? event : window.event;//IE中event是一个全局属性
    },
    getEvent: function(){
        return window.event || arguments.callee.caller.arguments[0];
    },
    getTarget: function (event) {
        return event.target || event.srcElement;//IE中事件源通过srcElement得到
    },
    /*阻止冒泡*/
    stopBubble: function (event){
        if (event && event.stopPropagation) {//非IE   
            event.stopPropagation();   
        } else { //IE   
            window.event.cancelBubble = true;   
        }
    },
    /*屏蔽浏览器默认行为*/
    stopDefault: function (event){
        if (event && event.preventDefault){
            event.preventDefault(); 
        }else{
            window.event.returnValue = false; //IE
        }     
        return false;
    }
};

正在加载评论...