JS判断当前页面是否在微信浏览器打开的方法


Posted in Javascript onDecember 08, 2015

本文实例讲述了JS判断当前页面是否在微信浏览器打开的方法。分享给大家供大家参考,具体如下:

最近做很多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()
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery+ajax验证不通过也提交表单问题处理
Dec 12 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
Django模板继承 extend标签实例代码详解
May 16 Javascript
详解Vue之计算属性
Jun 20 Javascript
在nuxt中使用路由重定向的实例
Nov 06 Javascript
Node与Python 双向通信的实现代码
Jul 16 Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 #Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 #Javascript
JS获取文件大小方法小结
Dec 08 #Javascript
js+ajax实现获取文件大小的方法
Dec 08 #Javascript
JS表格组件神器bootstrap table详解(基础版)
Dec 08 #Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 #Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 #Javascript
You might like
用php过滤危险html代码的函数
2008/07/22 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
python的类变量和成员变量用法实例教程
2014/08/25 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python截取两个单词之间的内容方法
2018/12/25 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
python tkinter实现连连看游戏
2020/11/16 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
鼓励运动员的广播稿
2014/02/08 职场文书
大学新生军训感言
2014/02/25 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
鲁迅故居导游词
2015/02/05 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python