浏览器检测JS代码(兼容目前各大主流浏览器)


Posted in Javascript onFebruary 21, 2016

本文实例介绍了JS代码实现浏览器检测,分享给大家供大家参考,具体内容如下

var BrowserMatch = {
  init: function () {
    this.browser = this.getBrowser().browser || "An Unknown Browser";
    this.version = this.getBrowser().version || "An Unknown Version";
    this.OS = this.getOS() || "An Unknown OS";
  },
  getOS:function(){
    if(navigator.platform.indexOf("Win")!= -1) return "Windows";
    if(navigator.platform.indexOf("Mac")!= -1) return "Mac";
    if(navigator.platform.indexOf("Linux")!= -1) return "Linux";
    if(navigator.userAgent.indexOf("iPhone")!= -1) return "iPhone/iPod";
  },
  getBrowser:function () {
    var rMsie = /(msie\s|trident\/7)([\w\.]+)/;
    var rTrident = /(trident)\/([\w.]+)/;
    var rFirefox = /(firefox)\/([\w.]+)/; 
    var rOpera = /(opera).+version\/([\w.]+)/;
    var rNewOpera = /(opr)\/(.+)/;
    var rChrome = /(chrome)\/([\w.]+)/;
    var rSafari = /version\/([\w.]+).*(safari)/;
    var ua = navigator.userAgent.toLowerCase();
    var matchBS,matchBS2;
    matchBS = rMsie.exec(ua);
    if (matchBS != null) {
      matchBS2 = rTrident.exec(ua);
      if (matchBS2 != null){
        switch (matchBS2[2]){
          case "4.0": return { browser : "IE", version : "8" };break;
          case "5.0": return { browser : "IE", version : "9" };break;
          case "6.0": return { browser : "IE", version : "10" };break;
          case "7.0": return { browser : "IE", version : "11" };break;
          default:return { browser : "IE", version : "Undefined" };
        }
      }else{
        return {browser : "IE", version : matchBS[2] || "0" };
      }
    }
    matchBS = rFirefox.exec(ua);  
    if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {  
      return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
    }
    matchBS = rOpera.exec(ua);         
    if ((matchBS != null)&&(!(window.attachEvent))) {     
      return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
    }
    matchBS = rChrome.exec(ua);  
    if ((matchBS != null)&&(!!(window.chrome))&&(!(window.attachEvent))) {
      matchBS2 = rNewOpera.exec(ua);       
      if(matchBS2 == null){
        return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
      }else{
        return { browser : "Opera", version : matchBS2[2] || "0" };
      }  
    }
    matchBS = rSafari.exec(ua);          
    if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {   
      return { browser : matchBS[2] || "", version : matchBS[1] || "0" };
    }           
  }
};  
BrowserMatch.init();

调用方法:(首先得引入js文件,大家应该都懂的)

获取浏览器名:BrowserMatch.browser;

获取浏览器版本:BrowserMatch.version;

获取所处操作系统:BrowserMatch.OS;

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Javascript Math对象
Aug 13 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
深入理解JavaScript编程中的同步与异步机制
Jun 24 Javascript
Angularjs 滚动加载更多数据
Mar 17 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
Vue封装Axios请求和拦截器的步骤
Sep 16 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 #Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 #Javascript
完善的jquery处理机制
Feb 21 #Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 #Javascript
jQuery实现div拖拽效果实例分析
Feb 20 #Javascript
jQuery实现简单隔行变色的方法
Feb 20 #Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 #Javascript
You might like
php程序员应具有的7种能力小结
2014/11/27 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
活动策划邀请函
2014/02/06 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2014年施工员工作总结
2014/11/18 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers