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 相关文章推荐
IE中直接运行显示当前网页中的图片 推荐
Aug 31 Javascript
JavaScript基本对象
Jan 11 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
Node.js实现数据推送
Apr 14 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
10道典型的JavaScript面试题
Mar 22 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
详解各版本React路由的跳转的方法
May 10 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 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自动生成月历代码
2006/10/09 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
javascript实现画板功能
2020/04/12 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python生成随机密码的方法
2017/06/16 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
关于学习的演讲稿
2014/05/10 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery