浏览器检测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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
Javascript计算时间差的函数分享
Jul 04 Javascript
纯JS实现旋转图片3D展示效果
Apr 12 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
JS解决position:sticky的兼容性问题的方法
Oct 17 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
Jul 24 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
如何让node运行es6模块文件及其原理详解
Dec 11 Javascript
jQuery无冲突模式详解
Jan 17 jQuery
js+html实现点名系统功能
Nov 05 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
php和html的区别点详细总结
2019/09/24 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
Python复制文件操作实例详解
2015/11/10 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
浅述python2与python3的简单区别
2018/09/19 Python
学生信息管理系统python版
2018/10/17 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
施工材料员岗位职责
2014/02/12 职场文书
奠基仪式主持词
2014/03/20 职场文书
小学生操行评语
2014/04/22 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
考试作弊检讨书
2015/01/27 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA