js判断当前页面用什么浏览器打开的方法


Posted in Javascript onJanuary 06, 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来判断了,经过查找资料终于实现了效果,直接上代码

function is_weixn(){ 
  var ua = navigator.userAgent.toLowerCase(); 
  if(ua.match(/MicroMessenger/i)=="micromessenger") { 
    return true; 
  } else { 
    return false; 
  } 
}

通过测试完全通过,无论是android 还是iphone,ipad 都可以,当然我们除了用js来判断之外,用其它语言来判断就更简单了,比如PHP

function is_weixin(){ 
  if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { 
      return true; 
  }  
  return false; 
}

以上就是为大家分享了js判断当前页面用什么浏览器打开的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Javascript中暂停功能的实现代码
Mar 04 Javascript
JS与框架页的操作代码
Jan 17 Javascript
Jquery操作radio的简单实例
Jan 06 Javascript
vue服务端渲染的实例代码
Aug 28 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
Angular 容器部署的方法
Apr 17 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
微信小程序实现带参数的分享功能(两种方法)
May 17 Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
Sep 24 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
javascript中闭包(Closure)详解
Jan 06 #Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 #Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 #Javascript
JavaScript实现简单的tab选项卡切换
Jan 05 #Javascript
javascript实现简单的全选和反选功能
Jan 05 #Javascript
Javascript原型链的原理详解
Jan 05 #Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 #Javascript
You might like
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
python中abs&map&reduce简介
2018/02/20 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python读取YAML文件过程详解
2019/12/30 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
打架检讨书100字
2014/01/08 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
倡导文明标语
2014/06/16 职场文书
委托证明模板
2014/09/16 职场文书
政风行风整改方案
2014/10/25 职场文书
通知的格式范文
2015/04/27 职场文书