JS compatibility issues in summary

  Obtaining non-inline style compatibility mode

the getStyle function (obj, attr) {   // Get non-line style, obj is the object, attr is a value 
     IF (obj.currentStyle) {                 // for obtaining non-line style ie 
          return obj.currentStyle [attr]; 
      } the else {
           return the getComputedStyle (obj, to false ) [attr];    // for non IE 
        } 
    }

 

  Gets the event object compatibility mode

document.onclick=function(eve){
        var e=eve||window.event;
        console.log(e);
    }

 

  Event bubbling compatible method

function stopBubble(e){
        if(e.stopPropagation){
            e.stopPropagation();
        }else{
            e.cancelBubble = true;//兼容ie
        }
    }

 

  Prevent the browser's default behavior of compatible method

    if( e.preventDefault ){
        e.preventDefault();
    }else{
        window.event.returnValue = false;//ie
    }

 

  Setting and removing event listeners compatibility mode

1.封装成对象的方式
    var EventUtil={
        addHandler:function(DOM,EventType,fn){
            if(DOM.addEventListener){
                DOM.addEventListener(EventType,fn,false);
            }else if(DOM.attachEvent){
                DOM.attachEvent('on'+EventType,fn)
            }else{
                DOM['on'+EventType]=fn
            }
        },
        removeHandler:function(DOM,EventType,fn){
            if(DOM.removeEventListener){
                DOM.removeEventListener(EventType,fn,false)
            }else if(DOM.detachEvent){
                DOM.detachEvent('on'+EventType,fn)
            }else{
                DOM['on'+EventType]=null;
            }
        }
    }


2.封装成两个函数的方式
    function addEvent(obj,inci,back){
        if(obj.addEventListener){
            obj.addEventListener(inci,back);
        }else if(obj.attachEvent){
            obj.attachEvent("on" + inci,back);
        }else{
            obj["on"+inci] = back;
        }
    }
          
    function removeEvent(obj,inci,back){
        if(obj.removeEventListener){
            obj.removeEventListener(inci,back,false);
        }else if(obj.detachEvent){
            obj.detachEvent("on" + inci,back);
        }else{
            obj["on"+inci] = null;
        }
    }

 

  The event delegate methods compatible

var oul = document.querySelector("ul")
    oul.onclick = function(eve){
        var e = eve || window.event;

        var t = e.target || e.srcElement;

        if(t.getAttribute("abc") == "l"){
            console.log(e.target.innerHTML)
        }
        
    }

 

  The method is compatible keyboard events

var eve = eve||window.event;
var keyC = eve.keyCode||eve.which;

 

  The above is a summary I met in the course of several learning js compatibility mode, if there is an error where we want to point out, thank you.

Guess you like

Origin www.cnblogs.com/lxylhj/p/11479827.html