使用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 相关文章推荐
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
angular2倒计时组件使用详解
Jan 12 Javascript
小程序图片长按识别功能的实现方法
Aug 30 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
vscode中使用npm安装babel的方法
Aug 02 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中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
php常用图片处理类
2016/03/16 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python实现查询IP地址所在地
2015/03/29 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
简单的Python调度器Schedule详解
2019/08/30 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
税务会计岗位职责
2015/04/02 职场文书
廉政承诺书2015
2015/04/28 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
python实现双向链表原理
2022/05/25 Python