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 相关文章推荐
快速排序 php与javascript的不同之处
Feb 22 Javascript
jQuery实现的Div窗口震动特效
Jun 09 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
详谈LABJS按需动态加载js文件
May 07 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
原生JS实现列表内容自动向上滚动效果
May 22 Javascript
elementUI 动态生成几行几列的方法示例
Jul 11 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
Aug 07 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
mysql时区问题
2008/03/26 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
YII框架常用技巧总结
2019/04/27 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
解决Python一行输出不显示的问题
2018/12/03 Python
Python处理session的方法整理
2019/08/29 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
python通过cython加密代码
2020/12/11 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
员工自我鉴定
2013/10/09 职场文书
政风行风整改报告
2014/11/06 职场文书
停课通知书
2015/04/24 职场文书
好员工观后感
2015/06/17 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
田径运动会广播稿
2015/08/19 职场文书
MySQL慢查询的坑
2021/04/28 MySQL