浏览器检测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 相关文章推荐
Ajax::prototype 源码解读
Jan 22 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
Nov 19 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
jQuery使用andSelf()来包含之前的选择集
May 19 Javascript
教你如何终止JQUERY的$.AJAX请求
Feb 23 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
vue中的面包屑导航组件实例代码
Jul 01 Javascript
Vue+abp微信扫码登录的实现代码示例
Jan 06 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php&java(二)
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
Javascript如何发送一个Ajax请求
2015/01/26 面试题
汇源肾宝广告词
2014/03/20 职场文书
会议室标语
2014/06/21 职场文书
六查六看自查报告
2014/10/14 职场文书
担保书范文
2015/01/20 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android