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 相关文章推荐
jQuery创建自己的插件(自定义插件)的方法
Jun 10 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
javascript实现五星评分功能
Nov 10 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
JS中的Replace()传入函数时的用法详解
Sep 11 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
vue style width a href动态拼接问题的解决
Aug 07 Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 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
typecho插件编写教程(五):核心代码
2015/05/28 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
简单JS代码压缩器
2006/10/12 Javascript
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
node后端服务保活的实现
2019/11/10 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
J2EE相关知识面试题
2013/08/26 面试题
两年的个人工作自我评价
2014/01/10 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
浅谈Python numpy创建空数组的问题
2021/05/25 Python
如何有效防止sql注入的方法
2021/05/25 SQL Server
SQL Server表分区删除详情
2021/10/16 SQL Server
Python 多线程处理任务实例
2021/11/07 Python