使用javascript实现判断当前浏览器


Posted in Javascript onApril 14, 2015

写了一个判断当前浏览器类型及版本的方法,只在IE 8/11 、谷歌 、360 浏览器(不完全)上测试过

希望大家提出意见

;(function($, window, document,undefined){
  if(!window.browser){
     
    var userAgent = navigator.userAgent.toLowerCase(),uaMatch;
    window.browser = {}
     
    /**
     * 判断是否为ie
     */
    function isIE(){
      return ("ActiveXObject" in window);
    }
    /**
     * 判断是否为谷歌浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/chrome\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'chrome';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为火狐浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/firefox\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'firefox';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为opera浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/opera.([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'opera';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为Safari浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/safari\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'safari';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 最后判断是否为IE
     */
    if(!uaMatch){
      if(userAgent.match(/msie ([\d.]+)/)!=null){
        uaMatch = userAgent.match(/msie ([\d.]+)/);
        window.browser['name'] = 'ie';
        window.browser['version'] = uaMatch[1];
      }else{
        /**
         * IE10
         */
        if(isIE() && !!document.attachEvent && (function(){"use strict";return !this;}())){
          window.browser['name'] = 'ie';
          window.browser['version'] = '10';
        }
        /**
         * IE11
         */
        if(isIE() && !document.attachEvent){
          window.browser['name'] = 'ie';
          window.browser['version'] = '11';
        }
      }
    }
 
    /**
     * 注册判断方法
     */
    if(!$.isIE){
      $.extend({
        isIE:function(){
          return (window.browser.name == 'ie');
        }
      });
    }
    if(!$.isChrome){
      $.extend({
        isChrome:function(){
          return (window.browser.name == 'chrome');
        }
      });
    }
    if(!$.isFirefox){
      $.extend({
        isFirefox:function(){
          return (window.browser.name == 'firefox');
        }
      });
    }
    if(!$.isOpera){
      $.extend({
        isOpera:function(){
          return (window.browser.name == 'opera');
        }
      });
    }
    if(!$.isSafari){
      $.extend({
        isSafari:function(){
          return (window.browser.name == 'safari');
        }
      });
    }
  }
})(jQuery, window, document);

//使用方式

console.log(window.browser);
console.log($.isIE());
console.log($.isChrome());

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
css样式标签和js语法属性区别
Nov 06 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
jquery easyUI中ajax异步校验用户名
Aug 19 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
Sep 28 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 Javascript
angular分页指令操作
Jan 09 Javascript
微信小程序实现换肤功能
Mar 14 Javascript
jQuery获得指定元素坐标的方法
Apr 14 #Javascript
JavaScript时间转换处理函数
Apr 14 #Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 #Javascript
js正则表达式匹配数字字母下划线等
Apr 14 #Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 #Javascript
JavaScript面向对象的实现方法小结
Apr 14 #Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 #Javascript
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
js表格分页实现代码
2009/09/18 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
javascript几个易错点记录
2014/11/26 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python实现图片批量剪切示例
2014/03/25 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python爬取哈尔滨天气信息
2018/07/14 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
python单例模式的多种实现方法
2019/07/26 Python
Python解析json代码实例解析
2019/11/25 Python
python next()和iter()函数原理解析
2020/02/07 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
创业者是否需要商业计划书?
2014/02/07 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
音乐教师求职信
2014/06/28 职场文书
人大调研汇报材料
2014/08/14 职场文书
2014年工程部工作总结
2014/11/25 职场文书