使用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 相关文章推荐
提交表单时执行func方法实现代码
Mar 17 Javascript
Jquery 实现table样式的设定
Jan 28 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
限制只能输入数字的实现代码
May 16 Javascript
Jquery中map函数的用法
Jun 03 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
AngularJS封装指令方法详解
Dec 12 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
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
xajax写的留言本
2006/11/25 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
js select option对象小结
2013/12/20 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
python的即时标记项目练习笔记
2014/09/18 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python selenium firefox使用详解
2019/02/26 Python
Django CBV类的用法详解
2019/07/26 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
迎新晚会主持词
2014/03/24 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
给老婆的道歉信
2015/01/20 职场文书
搞笑结婚保证书
2015/05/08 职场文书
趣味运动会加油词
2015/07/18 职场文书
跳高加油稿
2015/07/21 职场文书
2022年四月新番
2022/03/15 日漫
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS