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获取GridView选择的行内容
Apr 14 Javascript
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
Mar 31 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
angular中的cookie读写方法
Aug 02 Javascript
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
原生JavaScript实现留言板
Jan 10 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学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
python2和python3哪个使用率高
2020/06/23 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
银行类自荐信
2014/02/04 职场文书
2014个人年度工作总结
2014/12/15 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
党员转正申请报告
2015/05/15 职场文书
运动会通讯稿300字
2015/07/20 职场文书
《司马光》教学反思
2016/02/22 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python