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 相关文章推荐
js与jquery回车提交的方法
Feb 03 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
Dec 26 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
vue修改vue项目运行端口号的方法
Aug 04 Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 Javascript
在vue中读取本地Json文件的方法
Sep 06 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
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
PHP4实际应用经验篇(5)
2006/10/09 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
python自动格式化json文件的方法
2015/03/11 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
项目资料员岗位职责
2013/12/10 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
邀请函怎么写
2015/01/30 职场文书
linux目录管理方法介绍
2022/06/01 Servers
使用Redis实现分布式锁的方法
2022/06/16 Redis