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 相关文章推荐
eval的两组性能测试数据
Aug 17 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
js无刷新操作table的行和列
Mar 27 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
Apr 08 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
JS判断日期格式是否合法的简单实例
Jul 11 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
vue使用i18n实现国际化的方法详解
Sep 05 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 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
提升PHP执行速度全攻略
2006/10/09 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python读写文件方法总结
2015/06/09 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
求职信需要的五点内容
2014/02/01 职场文书
2014村务公开实施方案
2014/02/25 职场文书
环境建设实施方案
2014/03/14 职场文书
预备党员转正材料
2014/12/19 职场文书
受资助学生感谢信
2015/01/21 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
公司安全管理制度范本
2015/08/05 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA