首页 > 技术文章 > 跨浏览器的 事件监听器、停止事件冒泡、阻止事件默认行为

snowcan 2017-04-13 21:44 原文

  一.跨浏览器的事件监听器

  二.跨浏览器的停止事件冒泡

  三.跨浏览器的阻止事件默认行为

 

  一.跨浏览器的事件监听器

    /**
        * 跨域的 浏览器 事件监听器
        * IE中没有addEventListener()方法,从IE5开始提供与之等效的attachEvent()方法;
        * 对于更早期的版本,只能通过属性方法(onclick属性)来解决问题。 eventType为事件类型
       */
    if(window.addEventListener){
        //第三个参数为false时,是冒泡事件监听器;为true时,是捕获事件监听器。
        window.addEventListener(eventType,callback,false);
    }else if(window.attachEvent){ 
        //IE8及以下版本
        window.attachEvent("on"+eventType,callback);
    }else{
        //IE5以下版本 document.onclick = callback;
        document["on"+eventType] = callback; 
    }  
    function callback(evt){
           //prep work
           evt = evt || window.evt;
           var target = evt.target || evt.srcElement;
           //work......
           console.log(target.nodeName);
    }

  二.跨浏览器的停止事件冒泡

   /**
     *跨浏览器的    停止事件冒泡
     */
    function someHandle(event) {
        event = event || window.event;
        if(event.stopPropagation){
            event.stopPropagation();
        }else {
            event.cancelBubble = true;
        }
    }

  三.跨浏览器的阻止事件默认行为

    /**
     *跨浏览器的    阻止事件默认行为
     */
    function someHandle(event) {
        event = event || window.event;
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue = false;
        }
    }

 

推荐阅读