当前浏览器的判断 QQ内置浏览器还是QQ浏览器

var browser ={
    versions: function() {
      var u = navigator.userAgent,
      var ua = navigator.userAgent.toLocaleLowerCase();
      app = navigator.appVersion;
      return {
        trident: u.indexOf('Trident') > -1,                        /*IE内核*/

        presto: u.indexOf('Presto') > -1,          /*opera内核*/

        webKit: u.indexOf('AppleWebKit') > -1, /*苹果、谷歌内核*/

        gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,        /*火狐内核*/

        mobile: !!u.match(/AppleWebKit.*Mobile.*/),        /*是否为移动终端*/

        ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), /*ios终端*/

        android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, /*android终端或者uc浏览器*/

        iPhone: u.indexOf('iPhone') > -1,          /*是否为iPhone或者QQHD浏览器*/

        iPad: u.indexOf('iPad') > -1,      /*是否iPad*/

        webApp: u.indexOf('Safari') == -1,          /*是否web应该程序,没有头部与底部*/

        souyue: u.indexOf('souyue') > -1,

        superapp: u.indexOf('superapp') > -1,

        weixin:u.toLowerCase().indexOf('micromessenger') > -1,
 
        qq: ua.match(/QQ/i) == "qq", // QQ
 
        weiBo: ua.match(/WeiBo/i) == "weibo", // 微博
 
        Safari:u.indexOf('Safari') > -1,
 
        QQbrw: u.indexOf('mqqbrowser') > -1, // QQ浏览器
 
        webview: !(u.match(/Chrome\/([\d.]+)/) || u.match(/CriOS\/([\d.]+)/)) && u.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),
 
        ucweb: function () {
          try {
            return parseFloat(u.match(/ucweb\d+\.\d+/gi).toString().match(/\d+\.\d+/).toString()) >= 8.2
          } catch (e) {
            if (u.indexOf('UC') > -1) {
              return true;
            }
            return false;
          }
        }(),
 
        Symbian: u.indexOf('Symbian') > -1,
        ucSB: u.indexOf('Firofox/1.') > -1
      };

    }(),

    language: (navigator.browserLanguage || navigator.language).toLowerCase()

  };

判断是在qq内置浏览器还是qq浏览器

browser.versions.qq && !browser.versions.QQbrw

转载于:https://www.cnblogs.com/ryze/p/ryze13.html
但是原文在对qq浏览器做判断是匹配的是大写字符串MQQBrowser,我测试时发现行不通,然后改成小写的mqqbrowser就没问题了。或者创建versions对象时候QQbrw项的匹配用ua去判断也行,前面ua = navigator.userAgent.toLocaleLowerCase()已经转换成小写了

QQbrw: ua.indexOf('mqqbrowser') > -1
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容