针对于不同web标准(w3c与非w3c)的兼容性写法

preventDefault

function test(e){
    if(!e){
        return;
    }
    
    if(e.preventDefault){
        e.preventDefault();
    }
    else{
        e.returnValue = false;
    }
}

stopPropagation

function test(e){
    if(!e){
        return;
    }
    
    if(e.stopPropagation){
        e.stopPropagation();
    }
    else{
        e.cancelBubble = true;
    }
    
}

getEvent

function getEvent(e){
    return e || window.event;
}

getTarget

function getTarget(e){
    var event = getEvent(e);
    return event.srcElement || event.target; 
}

getType

function getType(e){
    var target = getTarget(e);
    return target.type || target.getAttribute("type");
}

addEvent

function addEvent(element,type,handler){
    if(!element) return;
    // w3c
    if(element.addEventListener){
        element.addEventListener(type,handler,false);
    }
    
    else if(element.attachEvent){
        element.attachEvent("on" + type, handler)
    }
}

removeEvent

function removeEvent(element,type,handler){
    if(!element) return;
    
    if(element.removeEventListener){
        element.removeEventListener(type,handler,false);
    }
    
    else if(element.detachEvent){
        element.detachEvent("on" + type, handler);
    }
}






你可能感兴趣的:(w3c标准)