浏览器识别

浏览器识别

Javascript 引擎 & 浏览器引擎

Javascript 引擎

  • V8: chrome, chromium, edge
  • SpiderMonkey: firefox
  • JavaScriptCore: safari, other webkit-based browser
  • chakra: ie

浏览器引擎

layout/rendering 引擎 + js 引擎

  • gecko: firefox
  • webkit: safari, 以前的 chrome
  • blink: 现在的 chrome
  • trident: ie
  • presto: opera

通过全局对象 navigator.userAgent 可以获得关于浏览器引擎的信息

套壳浏览器

  • 国内浏览器基本都是所谓套壳浏览器,即在 chrome & ie 基础上加点东西,一般极速模式对应 chrome,兼容模式对应 ie
  • 但是套壳浏览器可能用的不是最新版内核,或者某些 api 表现不一样…
  • 一般套壳浏览器会在 userAgent 上加上自己的厂商标识,不过目前发现 360 没有(后面给出一种暂时可用的 hack)
  • ps. 调试过程中发现 360 还可以换 ie11/10/9/8… 的内核,用来测试兼容性还是挺好用的

代码

发现 360 的 navigator.mimeTypes 与 chrome 有很大不同,其中有一些项带着 360 标识,应该别的浏览器不会有吧…

var mime = navigator.mimeTypes;
for (var key in mime) {
    if (/360/.test(mime[key].type)) {
        console.log('360');
    }
}

其他

  • 注意低版本浏览器可能不支持 es6 甚至 es5 语法
  • 如果整合进项目中,最好将这部分与其他部分分离,不然为了兼容低版本和 ie 需要 webpack 加很多 babel 配置,而且可能还不行…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值