使用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 相关文章推荐
jquery api参考 visualjquery 中国线路 速度快
Nov 30 Javascript
jQuery选择没有colspan属性的td的代码
Jul 06 Javascript
JavaScript浏览器选项卡效果
Aug 25 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
Oct 21 Javascript
适用于手机端的jQuery图片滑块动画
Dec 09 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
js评分组件使用详解
Jun 06 Javascript
vue选项卡切换登录方式小案例
Sep 27 Javascript
JS继承最简单的理解方式
Mar 31 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
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php SQL防注入代码集合
2008/04/25 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
python处理Excel xlrd的简单使用
2017/09/12 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
python列表的增删改查实例代码
2018/01/30 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Python对列表的操作知识点详解
2019/08/20 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
python help函数实例用法
2020/12/06 Python
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
青年志愿者事迹材料
2014/02/07 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
教师师德承诺书2016
2016/03/25 职场文书
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
七个Python必备的GUI库
2021/04/27 Python
Html5生成验证码的示例代码
2021/05/10 Javascript