浏览器检测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 相关文章推荐
JS类定义原型方法的两种实现的区别评论很多
Sep 12 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
Jun 20 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
May 20 Javascript
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
微信小程序联网请求的轮播图
Jul 07 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 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测试硬盘写入速度示例
2014/01/27 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
js form action动态修改方法
2008/11/04 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
用Python设计一个经典小游戏
2017/05/15 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python实现感知器
2017/12/19 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python如何输出警告信息
2020/07/30 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
学前教育专业求职信
2014/09/02 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
整改报告怎么写
2014/11/06 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
八月一日观后感
2015/06/10 职场文书
活动新闻稿范文
2015/07/17 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL