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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
JQuery性能优化的几点建议
May 14 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
jQuery遍历DOM元素与节点方法详解
Apr 14 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
详解Javascript 中的 class、构造函数、工厂函数
Dec 20 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
详解react组件通讯方式(多种)
May 06 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递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
python3 读写文件换行符的方法
2018/04/09 Python
python实现决策树分类
2018/08/30 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
python常用运维脚本实例小结
2020/02/14 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
用python对oracle进行简单性能测试
2020/12/05 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
内勤主管岗位职责
2014/04/03 职场文书
工作求职信
2014/07/04 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
高一数学教学反思
2016/02/18 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Python中递归以及递归遍历目录详解
2021/10/24 Python
索尼ICF-5900W收音机测评
2022/04/24 无线电
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis