JS判断是否在微信浏览器打开的简单实例(推荐)


Posted in Javascript onAugust 24, 2016

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

以上这篇JS判断是否在微信浏览器打开的简单实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
Jan 09 Javascript
JQuery jsonp 使用示例代码
Aug 12 Javascript
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
jQuery产品间断向下滚动效果核心代码
May 08 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
js操作数组函数实例小结
Dec 10 Javascript
举例说明JavaScript中的实例对象与原型对象
Mar 11 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
Vue.js实现微信过渡动画左右切换效果
Jun 13 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
基于JQuery实现页面定时弹出广告
May 08 jQuery
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
jquery实现网页定位导航
Aug 23 #Javascript
You might like
php在线生成ico文件的代码
2007/10/09 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
python 定时修改数据库的示例代码
2018/04/08 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
基于python3的socket聊天编程
2020/02/17 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
CSMA/CD介质访问控制协议
2015/11/17 面试题
主管会计岗位责任制
2014/02/10 职场文书
小学毕业演讲稿
2014/04/25 职场文书
技术股东合作协议书
2014/12/02 职场文书
调任通知
2015/04/21 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书