【原创+亲测可用】JS如何区分微信浏览器、QQ浏览器和QQ内置浏览器

摘要:
1.原理:通过不同移动终端的UA弹出窗口获取用户代理参数中包含的信息,判断浏览器类型在Android上的QQ内置环境的UA中有关键字MQQBrowser,其后面包含一个[空白字符+QQ]字符;QQ浏览器只有[MQQBrowser],因此可以在Android上进行区分。需要使用常规判断来确定ua包含MQQBrowser,并且在移除[MQQBrowser](即QQ内置浏览器)后包含[MQQ+Blank]。QQ浏览器:

1、原理:

通过不同移动端的ua弹窗 获取user-agent 参数包含的信息,进行判断浏览器类型

Android上
QQ内置环境的ua中有关键字 MQQBrowser, 并且后面包含一个【空白符+QQ】字符;QQ浏览器仅有【MQQBrowser
因此在Android上区分,需要用正则判断ua中包含MQQBrowser,并且剔除【MQQBrowser】之后包含【空白符+QQ】,则是QQ内置浏览器,
QQ浏览器:ua中包含MQQBrowser但是不包含QQ

ios
QQ内置浏览器: ua包含一个空格加QQ,但是不包含MQQBrowser
QQ浏览器: ua包含MQQBrowser但是不包含单独的QQ

2、直接上js正则判断代码:(s 代表空白符)

<script type="text/javascript">
//判断是否QQ内置浏览器(含IOS和Andriod)
function isQQAPP(){
    var isIosQQ = ( /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && /sQQ/i.test(navigator.userAgent));
    var isAndroidQQ = ( /(Android)/i.test(navigator.userAgent) && /MQQBrowser/i.test(navigator.userAgent) && /sQQ/i.test((navigator.userAgent).split('MQQBrowser')));
    alert(isIosQQ+"--"+isAndroidQQ);
    if(isIosQQ || isAndroidQQ){
        $(".down-share").empty();
        var html = "<a   href='http://t.zoukankan.com/index.php/Mobile/Product/detail/id/{$_list.id}/method/download'>下载行程</a><a   href='javascript:void(0);'>分享行程</a>";
        $(".down-share").append(html);
    }
}
</script>

3、参考文章:

https://blog.csdn.net/zxjiayou1314/article/details/52814716

https://segmentfault.com/q/1010000006179538/a-1020000006230274

https://www.cnblogs.com/zhangxiaoshu/p/8489665.html

免责声明:文章转载自《【原创+亲测可用】JS如何区分微信浏览器、QQ浏览器和QQ内置浏览器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇超赞的CSS3动画下拉菜单JS中双击和单击事件冲突解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

第2章 两种调用JS的方法——在HTML中使用JavaScript

 一. <script>标记  第一种方法是把 <sript></script>直接放到head和script两个标记之间(title下面,</head>上面) <head>... <title>demo</title> <script typ...

js table的笔记,实现添加 td,实现搜索功能

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title&...

微信内 H5 页面自定义分享

起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等)。问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于把用户信息泄露了。所以为了解决这个问题,只能实现自定义微信分享的功能,可以自定义分享的地址、标题、图标还有简介。 事先需要做的: 1.微信公众号:必须是经过...

js实现日期显示的一些操作

1、js获取当前日期(yyyy-mm-dd) 以下代码是获取到的当前日期: 1 var myDate = new Date(); 2 var year = myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 var month = myDate.getMonth()+1; //获取当前月...

js 完成对图片的等比例缩放的方法

1 /* 2 重新按比例设置 页面上对应图片的长和高, 3 */ 4 function resetImgSize(id,imgWidth,imgHeight,posWidth,posHeight) { 5 var width = 0; 6 var height = 0; 7 // 按比例缩小图片的算法 8...

JS页面绝对定位元素拖动

一.mousedown、mousemove和mouseup 拖着目标元素在页面任意位置 如果要设置物体拖拽,那么必须使用三个事件,并且这三个事件的使用顺序不能颠倒。 1.onmousedown:鼠标按下事件2.onmousemove:鼠标移动事件3.onmouseup:鼠标抬起事件 重点: 1、一定要绝对定位,脱离文档流才可以移动。 2、绑定拖拽的元素,移...