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 相关文章推荐
jQuery使用手册之三 CSS操作
Mar 24 Javascript
javascript下查找父节点的简单方法
Aug 13 Javascript
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
js日历功能对象
Jan 12 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
tracking.js页面人脸识别插件使用方法
Apr 16 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
Jul 24 Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 30 Javascript
js删除对象中的某一个字段的方法实现
Jan 11 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
改变Apache端口等配置修改方法
2008/06/05 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
python从入门到精通(DAY 1)
2015/12/20 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
python实现飞机大战小游戏
2019/11/08 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
财务会计专业推荐信
2013/11/30 职场文书
拓展策划方案
2014/06/03 职场文书
化工专业求职信
2014/07/01 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python