JavaScript的兼容

兼容总结


  • 如果两个都是属性,用逻辑 || 做兼容
  • 如果有一个是方法,用三元做兼容
  • 如果多个属性或方法,封装函数做兼容

获取class属性值的兼容

function getClass (obj){
    if(obj.getAttribute("class") == null){
        return (obj.getAttribute("className")
    }else{
         return (obj.getAttribute("class")
    }
}

获取className兼容

function byClassName (className){
    if(document.getElementsByClassName){
        return document.getElementsByClassName(className);
    }else{
        var arr = [];
        var ele = document.getElementsByTanName("*");
        for(var i = 0; i < ele.length; i++){
            if(ele[i].className == className){
                arr.push(ele[i]);
            }
        }
        return arr;
    }
}

滚动高度兼容

 var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;

获取非行内样式的兼容

function getStyle(obj,attr){
    return obj.currentStyle ? obj.currentStyle[attr] : getConputedStyle(obj,1)[attr];
}

获取事件Event兼容

oBtn.onclick = function(event){
    event = event || window.event;
}

键盘值的兼容

function key(evt){
    var e = evt || window.event
    var keyvalue = e.getCode || e.charCOde || e.which;
    return keyvalue;
}

阻止事件冒泡

function stop (e){
    var e = e || window.event;
    return e.stopPropagtion ? e.stopPropagtion() : e.cancelBubble = true;
}

阻止超链接的默认行为

oA.onclick = function (e){
    var e = e || window.event;
    e.preventDefault ? e.preventDefault() : e.returnValue = false;
}

事件源委托兼容

function target(evt){
    var e = evt || window.event;
    var target = e.target || e.srcElement;
    return target;
}

获取鼠标值的兼容

function getButton(evt){
    var e = evt || window.event;
    if(evt){
        return e.button;
    }else if(window.event){
        switch(e.button){
            case 1 : return 0;
            case 4 : return 1;
            case 2 : return 2;
        }
    }
}

添加事件的兼容

function addEventListener(obj,evt,fn,boo){
    if(obj.addEventListener){
        obj.addEventListener(evt,fn,boo);
    }else{
        obj.attachEvent("on" + evt , fn);
    }
}

移除事件的兼容

function removeEventListener(obj,evt,fn,boo){
    if(obj.removeEventListener){
        obj.removeEventListener(evt,fn,boo);
    }else{
        obj.detachEvent("on" + evt , fn);
    }
}

转载于:https://www.cnblogs.com/hw-0409/p/7877888.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值