记一次项目处理浏览器经历

最近在做 Angularjs + SpringBoot的项目;
通过反馈发现有部分用户习惯使用360浏览器;
因此通过对360浏览器深入了解发现其有两种模式:兼容模式(IE内核)和极速模式(chrome内核);
根据需求当用户使用360兼容模式登录时,系统将提示切换至极速模式(虽然这不是什么好的解决方案,但别无选择);
方案想着很简单,但当实现的时候emmmmmmm...第一步就遇到很大的问题!

首先得用js检测用户使用的哪个浏览器:
通过 
     let ua = navigator.userAgent.toLocaleLowerCase();
     ua.match(/.../);
     即可检测出
         firefox,chrome,safari,ubrowser,tencenttraveler...
         常见的浏览器UA;
但是
    唯独 360浏览器没有办法检测;
网上查阅了很多资料都没有最佳的办法
/* 说是之前可以用 UA 来检测,但在 360 浏览器争议声较大的那段时间内,很多站长都屏蔽了 360 浏览器的 UA,然后 360 浏览器为了用户体验更新版本,伪装成 IE 或者 Chrome 浏览器,所以现在都检测不出来了 */

因此最终的办法就是:
        1.判断极速模式:

            function _mime(option, value) {
                var mimeTypes = navigator.mimeTypes;
                for (var mt in mimeTypes) {
                    if (mimeTypes[mt][option] === value) {
                        return true;
                    }
                }
                return false;
            }
            _mime("type", "application/vnd.chromium.remoting-viewer");

        2.判断兼容模式 === 判断IE
             ua.match(/msie/) != null || ua.match(/trident/) != null

###### 大佬还有更好的办法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值