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学习笔记6 prototype的提出
Jan 11 Javascript
JavaScript 判断指定字符串是否为有效数字
May 11 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
浅谈vuex中store的命名空间
Nov 08 Javascript
解决pycharm双击但是无法打开的情况
Oct 31 Javascript
JavaScript函数柯里化实现原理及过程
Dec 02 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
js实现音乐播放控制条
2017/09/09 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python实现端口检测的方法
2018/07/24 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python微信好友数据分析详解
2018/11/19 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
东方电视购物:东方CJ
2016/10/12 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
研究生自荐信
2013/10/09 职场文书
关于迟到的检讨书
2014/01/26 职场文书
总经理助理的职责
2014/03/14 职场文书
团支部推优材料
2014/05/21 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
学习雷锋主题班会
2015/08/14 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python