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 相关文章推荐
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
javascript调试说明
Jun 07 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
Jul 31 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
Python学习资料
2007/02/08 Python
Python中的字典遍历备忘
2015/01/17 Python
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
简析Python的闭包和装饰器
2016/02/26 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
python 如何在测试中使用 Mock
2021/03/01 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
采购员岗位职责
2013/11/15 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
倡议书的格式写法
2015/04/28 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
解决hive中导入text文件遇到的坑
2021/04/07 Python