JS判断是否在微信浏览器打开的简单实例(推荐)


Posted in Javascript onAugust 24, 2016

最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去。在分享页面上提供公司APP的下载。但是在很多应用的浏览器中,点击下载链接无法下载应用。那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面。通过js就可以判断当前页面是在什么浏览器打开的。

以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开。当然可以做得更完善一点,再加上判断是在移动设备打开还是在PC端浏览器打开的,更加细分一点,可以判断是在安卓系统的浏览器打开的还是IOS系统浏览器打开的。

if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
    var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
        //在微信中打开
    }
    if (ua.match(/WeiBo/i) == "weibo") {
        //在新浪微博客户端打开
    }
    if (ua.match(/QQ/i) == "qq") {
        //在QQ空间打开
    }
    if (browser.versions.ios) {
        //是否在IOS浏览器打开
    } 
    if(browser.versions.android){
        //是否在安卓浏览器打开
    }
} else {
    //否则就是PC浏览器打开
}

再附上browser的代码,通过以下方法可以判断很多浏览器。包括判断IE浏览器,Opera浏览器,苹果浏览器,谷歌浏览器,火狐浏览器等。

var browser = {
  versions: function () {
    var u = navigator.userAgent, 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应该程序,没有头部与底部
    };
  }(),
  language: (navigator.browserLanguage || navigator.language).toLowerCase()
}

以上这篇JS判断是否在微信浏览器打开的简单实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
datePicker——日期选择控件(with jquery)
Feb 20 Javascript
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
jQuery的remove()方法使用详解
Aug 11 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 Javascript
Angular CLI发布路径的配置项浅析
Mar 29 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
jquery实现网页定位导航
Aug 23 #Javascript
You might like
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python用户自定义异常的实现
2020/12/25 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
党员教师一句话承诺
2014/05/30 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
三峡导游词
2015/01/31 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python