Dorea.js框架介绍:关于IE/Edge浏览器的兼容处理

    不少小伙伴经常要处理IE/Edge浏览器的兼容(主要是外包,还是接事业单位的项目的伙伴)。样式的处理可以使用css hack,但部分无法使用hack的,只能操作脚本去控制样式的变化/脚本兼容处理。但不能需要用的时候再去判断是否ie浏览器,然后再写脚本处理,这里太麻烦了。下面介绍一个函数,一次直接判断,处理时直接调用即可。

function ie(param){
    var ua = navigator.userAgent,
    isIE = ua.indexOf("compatible") > -1 && ua.indexOf("MSIE") > -1, //ie<11 
    isEdge = ua.indexOf("Edge") > -1 && !isIE,   
    isIE11 = ua.indexOf('Trident') > -1 && ua.indexOf("rv:11.0") > -1;
    /*
        * 判断是否IE11以下的浏览器,IE11返回的userAgent不同于11版本以下的
        * 直接执行相对应的回调
    */ 
    if(isIE) {
        var regIE = new RegExp("MSIE (\\d+\\.\\d+);");
        regIE.test(ua)
        var ver = parseFloat(RegExp["$1"]);
        switch (ver) {
            case ver<7:
                break;
            default:
                param["ie"+ver]?param["ie"+ver]():"";
                break;
        }                 
    } else if(isEdge) {
        param.edge? param.edge():"";
    } else if(isIE11) {
        param.ie11? param.ie11():"";
    }
}

注意:在win10上,IE5会返回IE7的userAgent,所以会按照IE7的回调去处理。

执行结果:

ie({
    "ie6":function (){
        console.log("这是ie7浏览器");
    },
    "ie7":function (){
        console.log("这是ie7浏览器");
    },
    "ie8":function (){
        console.log("这是ie8浏览器");
    },
    "ie11":function (){
        console.log("这是ie11浏览器");
    },
    "edge":function (){
        console.log("这是edge浏览器");
    },
    "chrome":function (){
        console.log("这是chrome浏览器");
    }
});

输出结果:

 

 

 

谢谢各位支持,喜欢的朋友可以fork一下哦!

Github: https://github.com/zpChiu/dorea.git

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值