使用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 相关文章推荐
Sample script that displays all of the users in a given SQL Server DB
Jun 16 Javascript
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
通过构造函数实例化对象的方法
Jun 28 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 Javascript
js实现弹框效果
Mar 24 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修改Linux或Unix口令的方法分享
2012/01/30 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
php7性能提升的原因详解
2019/10/13 PHP
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python中bisect模块用法实例
2014/09/25 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
高职助产应届生自荐信
2013/09/24 职场文书
生产文员岗位职责
2014/04/05 职场文书
学校对教师的评语
2014/04/28 职场文书
应聘会计求职信
2014/06/11 职场文书
国际贸易求职信
2014/07/05 职场文书
同学毕业留言寄语
2015/02/27 职场文书
早会开场白台词大全
2015/06/01 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
开学第一周总结
2015/07/16 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python