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 小型打飞机游戏实现原理说明
Oct 28 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
extjs两个tbar问题探讨
Aug 08 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
js实现异步循环实现代码
Feb 16 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
关于vue.js弹窗组件的知识点总结
Sep 11 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
微信小程序 动态传参实例详解
Apr 27 Javascript
详解Vue之事件处理
Jul 10 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
php使用百度天气接口示例
2014/04/22 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
推荐dojo学习笔记
2007/03/24 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
办理护照介绍信
2014/01/16 职场文书
个人工作主要事迹
2014/05/08 职场文书
与美同行演讲稿
2014/09/13 职场文书
迎新生晚会主持词
2015/06/30 职场文书
2015年女工委工作总结
2015/07/27 职场文书
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python