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

js获取浏览器内核判断终端(是QQ打开还是QQ浏览器打开)的更多相关文章

  1. 根据浏览器内核判断是web/iOS/android/ipad/iphone 来打开不同的网站或页面

    纯js,直接分享,直接使用: var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVe ...

  2. H5根据浏览器内核判断并区分微信、QQ和QQ浏览器

    项目中碰到这样一个需求点,在h5页面区分当前所处客户端环境是QQ客户端.微信客户端还是QQ浏览器客户端,并做不同的逻辑处理 首先可以通过 window.navigator.userAgent 获取到当 ...

  3. js获取上传图片大小,判断上传图片类型,获取图片真实宽度和高度

    html部分 <div class="form-group col-md-12"> <label class="col-md-2 text-right& ...

  4. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

    截至自2017-08-11,支持现世已出的几乎所有PC端浏览器版本判断. 受支持的PC端浏览器列表: Edge IE Chrome Firefox Opera Safari QQ浏览器 360系列浏览 ...

  5. 关于浏览器内核与javascript引擎的一些小知识

    浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知.今天异次元就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西. 在下面的文章中主 ...

  6. 各大浏览器内核特性及对应的Browserhacks举例

    1.浏览器内核指的是什么? 简化的浏览器=用户界面+渲染引擎+js解析引擎+数据存储+网络部件 而通常所说的浏览器内核指的是页面渲染引擎(rendering engine). 2.渲染引擎 The r ...

  7. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. webkit、cef、nwjs、electron、 miniblink浏览器内核优缺点

    市面上作为嵌入的组件的可用的浏览器内核,不外乎这几个:webkit.cef.nwjs.electron. 1.cef:优点是由于集成的chromium内核,所以对H5支持的很全,同时因为使用的人也多, ...

  9. js获取浏览器类型进行判断

    本文为webuploader.js中学习心得,感谢开源,从中加入了ie的edge判断 /** * @description 简单的浏览器检查结果. * * * `webkit` webkit版本号,如 ...

随机推荐

  1. docker 常用命令(一)

    1.docker安装 centos1611(7.3)在线安装: # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yu ...

  2. LeetCode 33 搜索旋转排序数组

    题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个 ...

  3. java接口中的继承

    java.util.concurrent包下的 public interface BlockingDeque<E> extends BlockingQueue<E>, Dequ ...

  4. 算法复杂度中的O(logN)底数是多少

    前言 无论是计算机算法概论.还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少.算法中log级别的时间复杂度都是由于使用了分治思想,这 ...

  5. C#修改json文件中的某些值

    using Newtonsoft.Json; JsonSerializer serialiser = new JsonSerializer(); string newContent = string. ...

  6. python 写的员工信息查询

    #!/use/bin/env pythonn#_*_ coding:utf-8 _*_import timedef Bre():    while True:        Bre_falg = ra ...

  7. day05 字典

    今日内容(dict) 1.基本格式 2.独有方法 3.公共 4.强制转换 1.基本格式 字典(可变类型,3.6之后是有序) 帮助用户去表示一个事物的信息(事物是有多个属性) 键值不能为集合,列表,字典 ...

  8. move UVs of a texture

    Go to the material options on the left, and use a Custom UV. Create a vector parameter, use it to sc ...

  9. C#通过代码判断并注册程序集到GAC

    var dllName = "EasyHook.dll"; var dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirec ...

  10. C# 左右补零

    //不够4位补零 public static string addZero(int val) { string str = val + ""; int strLen = str.L ...