Common compatibility problems in js

window properties of the object:

The width of the visible region: window.innerWidth || document.documentElement.clientWidth ( compatible IE) || document.body.clientWidth

The width of the visible region: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight

Distance from the top of the page scroll bar: document.documentElement.scrollTop || document.body.scrollTop

Distance from the left side of the page scroll bar: document.docimentElement.scrollLeft || document.body.scroll Left

 

event Compatible: var = Eve event the window.event ||

( Keyboard events ) var keyC = eve.keyCode (IE)     || eve.which

 

Prevent the event from bubbling function package:   

function del(){

           var e = event || window.event;

           if (e.stopPropagation) {// common way to prevent bubbling behavior

               e.stopPropagation();

           } Else {// IE browser

               event.cancelBubble = true;

           }

 

Prevent the default behavior of the function package

function stopDefault(event) {

     var e = event || window.event;

     if (e.preventDefault){

         e.preventDefault (); // standard browser

     }else{

         e.returnValue = false; // IE browser

     }

}

 

DOM2 -level events package:  

function addEvent(obj,inci,back){

         if(obj.addEventListener){

             obj.addEventListener(inci,back);

         }else if(obj.attachEvent){

             obj.attachEvent("on" + inci,back);

         } else {// above do not support the binding DOM1 level events

             obj["on"+inci] = back;

         }

     }

Remove Event Listeners:
function removeEventListener(obj,event,fn,boo){
        if( removeEventListener){
            obj.removeEventListener(event,fn,boo)
        }else if(detachEvent){
            obj.detachEvent('on'+event,fn);
        }else{
            obj [ 'on' + event] = null; // Note here that, like the blank directly during removal
        }
    }

 

Event Source target acquisition compatible with the wording :

        var e = eve || window.event;

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

 

Non-line-style get:

     Node object .currentStyle [ Properties ] IEs browser

     the getComputedStyle ( node objects ). Properties Non- IE browser. Get property value of the property.

 

Gets compatible page elements by byClassName
    // Analysis: If you support direct access, if not supported, by byTagName acquisition, need to traverse all the labels to find the necessary elements of className
    function byClassName(obj,className){
        if(obj.getElementsByClassName){
            return obj.getElementsByClassName(className);
        }
        else{
            was arr = [];
            var eles=obj.getElementsByTagName('*');
            for (var i = 0, len = eles.length; i <len; i ++) {
                if(eles[i].className==className){
                    arr.push (they [i]);
                }
            }
            return arr;
        }
    }

 

Guess you like

Origin www.cnblogs.com/wshj120828/p/11571602.html