使用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 相关文章推荐
javascript XML数据显示为HTML一例
Dec 23 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
jquery中ajax使用error调试错误的方法
Feb 08 Javascript
js实现文字滚动效果
Mar 03 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
fullpage.js最后一屏滚动方式
Feb 06 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
Aug 02 Javascript
Vue动态获取width的方法
Aug 22 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 07 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
教大家制作简单的php日历
2015/11/17 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
python实时监控cpu小工具
2018/06/21 Python
从python读取sql的实例方法
2020/07/21 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
新生入学欢迎词
2015/01/26 职场文书
Python进度条的使用
2021/05/17 Python