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循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 Javascript
JSONP跨域请求
Mar 02 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
微信小程序 简易计算器实现代码实例
Sep 02 Javascript
js实现有趣的倒计时效果
Jan 19 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
第十四节 命名空间 [14]
2006/10/09 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
对Python _取log的几种方式小结
2019/07/25 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
使用python turtle画高达
2020/01/19 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
小学国旗下的演讲稿
2014/08/28 职场文书
初中作文评语
2014/12/25 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
Rust中的Struct使用示例详解
2022/08/14 Javascript