浏览器检测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 null和undefined区别分析
Oct 14 Javascript
基于jQuery的仿flash的广告轮播代码
Nov 04 Javascript
avalon js实现仿微博拖动图片排序
Aug 14 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
JS触摸事件、手势事件详解
May 04 Javascript
Vue动态获取width的方法
Aug 22 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
May 05 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 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
用户的详细注册和判断
2006/10/09 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
socket + select 完成伪并发操作的实例
2017/08/15 Python
python turtle 绘制太极图的实例
2019/12/18 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
flask框架中的cookie和session使用
2021/01/31 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
九年级政治教学反思
2014/02/06 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android
LeetCode189轮转数组python示例
2022/08/05 Python