js获取浏览器

这段JavaScript代码通过分析userAgent字符串来识别浏览器类型,包括IE系列、QQ、百度、猎豹、世界之窗等浏览器,以及Chrome、Firefox等,最后返回具体的浏览器型号。
摘要由CSDN通过智能技术生成
//获取浏览器
    browerType() {
        var ua = navigator.userAgent.toLocaleLowerCase();
        // 判断是否为IE(第一个是正常的IE,第二个是Edge,第三个是IE11)
        var isIE = (ua.indexOf("compatible") > -1 && ua.indexOf("msie") > -1) || (ua.indexOf("edge") > -1) || (ua.indexOf(
            'trident') > -1 && ua.indexOf("rv:11.0") > -1);
        // 判断是否为IE5678,!+[1,] 在IE5678返回true,在IE9、IE10、IE11返回false
        var isLteIE8 = isIE && !+[1,];
        // 用于防止因通过IE8+的文档兼容性模式设置文档模式,导致版本判断失效
        var dm = document.documentMode,
            isIE5,
            isIE6,
            isIE7,
            isIE8,
            isIE9,
            isIE10,
            isIE11;
        if (dm) {
            isIE5 = dm === 5;
            isIE6 = dm === 6;
            isIE7 = dm === 7;
            isIE8 = dm === 8;
            isIE9 = dm === 9;
            isIE10 = dm === 10;
            isIE11 = dm === 11;
        } else {
            // 判断是否为IE5,IE5的文本模式为怪异模式(quirks),真实的IE5.5浏览器中没有document.compatMode属性  
            isIE5 = (isLteIE8 && (!document.compatMode || document.compatMode === 'BackCompat'));
            // 判断是否为IE6,IE7开始有XMLHttpRequest对象  
            isIE6 = isLteIE8 && !isIE5 && !XMLHttpRequest;
            // 判断是否为IE7,IE8开始有document.documentMode属性  
            isIE7 = isLteIE8 && !isIE6 && !document.documentMode;
            // 判断是否IE8  
            isIE8 = isLteIE8 && document.documentMode;
            // 判断IE9,IE9严格模式中函数内部this不为undefined  
            isIE9 = !isLteIE8 && (function () {
                "use strict";
                return !!this;
            }());
            // 判断IE10,IE10开始支持严格模式,严格模式中函数内部this为undefined   
            isIE10 = isIE && !!document.attachEvent && (function () {
                "use strict";
                return !this;
            }());
            // 判断IE11,IE11开始移除了attachEvent属性  
            isIE11 = isIE && !document.attachEvent;
        };
        // 因为字符串存在覆盖重复原因,判断顺序不可随意修改
        if (isIE5) return 'IE5';
        if (isIE6) return 'IE6';
        if (isIE7) return 'IE7';
        if (isIE8) return 'IE8';
        if (isIE9) return 'IE9';
        if (isIE10) return 'IE10';
        if (isIE11) return 'IE11';
        if (ua.indexOf('green') > -1) return '绿色浏览器';
        if (ua.indexOf('qq') > -1) return 'QQ浏览器';
        if (ua.indexOf('bidu') > -1) return '百度浏览器';
        if (ua.indexOf('lb') > -1) return '猎豹浏览器';
        if (ua.indexOf('world') > -1) return '世界之窗浏览器';
        if (ua.indexOf('2345') > -1) return '2345浏览器';
        if (ua.indexOf('maxthon') > -1) return '傲游浏览器';
        if (ua.indexOf('tao') > -1) return '淘宝浏览器';
        if (ua.indexOf('ubrowser') > -1) return 'UC浏览器';
        if (ua.indexOf('coolnovo') > -1) return '枫叶浏览器';
        if (ua.indexOf('opr') > -1) return 'opera浏览器';
        if (ua.indexOf('se') > -1) return '搜狗浏览器';
        if (ua.indexOf('firefox') > -1) return 'firefox浏览器';
        if (ua.indexOf('safari') > -1 && ua.indexOf("version") > -1) return ('safari浏览器');
        if (window.navigator.mimeTypes[40] || !window.navigator.mimeTypes.length) return '360浏览器';
        if (ua.indexOf("chrome") > -1 && window.chrome) return ('chrome浏览器');
        return '其他浏览器';
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫叶&情缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值