js判断当前页面用什么浏览器打开的方法

 更新时间:2016年01月06日 08:39:51   投稿:lijiao  
这篇文章主要介绍了js判断当前页面用什么浏览器打开的方法,需要的朋友可以参考下

最近做很多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判断当前页面用什么浏览器打开的方法,希望对大家的学习有所帮助。

相关文章

  • typescript中正则表达式的常用使用方法

    typescript中正则表达式的常用使用方法

    这篇文章主要给大家介绍了关于typescript中正则表达式的常用使用方法,TypeScript是一种静态类型的JavaScript超集,它提供了对正则表达式的全面支持,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • JScript的条件编译

    JScript的条件编译

    JScript的条件编译...
    2007-05-05
  • js模拟实现烟花特效

    js模拟实现烟花特效

    这篇文章主要为大家详细介绍了js模拟实现烟花特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • next.js之getStaticProps getStaticPaths使用技巧解析

    next.js之getStaticProps getStaticPaths使用技巧解析

    这篇文章主要为大家介绍了next.js之getStaticProps getStaticPaths使用技巧解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 自己写的Javascript计算时间差函数

    自己写的Javascript计算时间差函数

    Javascript计算时间差函数,获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒。
    2013-10-10
  • JS保留两位小数,多位小数的示例代码

    JS保留两位小数,多位小数的示例代码

    本篇文章主要是对JS保留两位小数,多位小数的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 用javascript做一个小游戏平台 (二) 游戏选择器

    用javascript做一个小游戏平台 (二) 游戏选择器

    昨天晚上“设计”了n久,那些代码都还没有运行起来,有点心急、有点郁闷。
    2010-01-01
  • 浅谈JavaScript中指针和地址

    浅谈JavaScript中指针和地址

    Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象。Javascript可以通过一定的设计模式来实现面向对象的编程,其中this指针就是实现面向对象的一个很重要的特性。
    2015-07-07
  • javaScript实现一个队列的方法

    javaScript实现一个队列的方法

    这篇文章主要介绍了javaScript实现一个队列的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能

    JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能

    这篇文章主要介绍了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能.结合实例形式分析了javascript基于单例模式结合ajax针对数据库进行增删改查的相关操作技巧,需要的朋友可以参考下
    2018-02-02

最新评论