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 Event学习第十一章 按键的检测
Feb 10 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
导航跟随滚动条置顶移动示例代码
Sep 11 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
易被忽视的js事件问题总结
May 14 Javascript
node.js实现快速截图
Aug 27 Javascript
js方法数据验证的简单实例
Sep 17 Javascript
JS重载实现方法分析
Dec 16 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
JS数组求和的常用方法实例小结
Jan 07 Javascript
微信小程序云开发详细教程
May 16 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 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和ACCESS写聊天室(四)
2006/10/09 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python快速查找list中相同部分的方法
2018/06/27 Python
Django如何实现上传图片功能
2019/08/16 Python
超级实用的8个Python列表技巧
2020/08/24 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
要账委托书范本
2014/09/15 职场文书
民主生活会发言材料
2014/10/20 职场文书
淘宝好评语句大全
2014/12/31 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
投资申请报告
2015/05/19 职场文书
运动会广播稿300字
2015/08/19 职场文书
党员理论学习心得体会
2016/01/21 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
分享Python异步爬取知乎热榜
2022/04/12 Python