JavaScript判断区分谷歌浏览器和360浏览器

360浏览器分为极速模式和兼容模式,内核是IE+ Chrome双内核的,在极速模式下是跟谷歌浏览器内核一致的,兼容模式下的内核是IE内核,所以目前在极速模式下360浏览器的userAgent信息和谷歌浏览器的信息基本一致了

第一种方法:

利用window.navigator.userAgent获取当前浏览器的user-agent信息,但是有一个问题就是,360浏览器在不同域名下返回的user-agent信息是不一样的,只有360自家的网站下返回的user-agent信息才是有带着“360SE”或者“360EE”标识的,例如百度等其他网站,返回的user-agent信息中是不带有“360SE”或者“360EE”标识的,故无法很好的进行判断是否为360浏览器。

第二种方法(浏览器版本不同的情况下,有可能无法判断):

360(极速模式):

谷歌:

所以采取的判断方法是根据navigator.userAgent.toLocaleLowerCase()方法判断内核分辨,代码如下:

function isNumberBrowser() {
    if (window.navigator.userAgent.indexOf('Safari') != -1) {
      if (window.navigator.userAgent.toLowerCase().includes('wow64')) {
        console.log('360浏览器');
      } else {
        console.log('谷歌浏览器');
      }
    } else {
      // 可以进行其他浏览器(除谷歌和360浏览器外)的判断
    }
  }

第三种方法:

判断是否存在np-mswmp.dll文件,截止到2023年11月份,谷歌浏览器下未查询到该文件,但是在360浏览器下存在该文件,代码如下:

    if (window.navigator.userAgent.indexOf('Safari') != -1) {
        for (var key in navigator.plugins) {
          // console.log(key, navigator.plugins[key])
          if (navigator.plugins[key].filename == 'np-mswmp.dll') {
            console.log('360浏览器')
          } else {
            console.log('谷歌浏览器')
          }
        }
    } else {
      // 可以进行其他浏览器(除谷歌和360浏览器外)的判断
    }    

第四种方法:

判断mimeTypes,在360极速浏览器中的这个属性中会有一个mimeTypes的type属性值为application/vnd.chromium.remoting-viewer,如果是360极速浏览器则返回true,如果是谷歌就返回false,代码如下:

  function isNumberBrowser(option, value) {
    let mimeTypes = navigator.mimeTypes;
    for (var mt in mimeTypes) {
      if (mimeTypes[mt][option] == value) {
        return true;
      }
    }
    return false;
  }
  isNumberBrowser("type", "application/vnd.chromium.remoting-viewer")
根据不同的浏览器版本,能够实现区分出260浏览器和谷歌浏览器的方法是不一样的,以上仅仅是本人经过一翻查阅和一些实践经历的总结,仅供大家参考,欢迎指正!
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值