浏览器检测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 相关文章推荐
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
javascript instanceof,typeof的区别
Mar 24 Javascript
匹配任意字符的正则表达式写法
Apr 29 Javascript
js中判断控件是否存在
Aug 25 Javascript
JS数学函数Exp使用说明
Aug 09 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
JavaScript框架是什么?怎样才能叫做框架?
Jul 01 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
JS实现从对象获取对象中单个键值的方法示例
Jun 05 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 Javascript
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与SQL注入攻击[一]
2007/04/17 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
python操作gmail实例
2015/01/14 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
幼儿园大班毕业教师寄语
2014/04/03 职场文书
机动车交通事故协议书
2015/01/29 职场文书
安全责任书
2015/01/29 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书