首页 > 编程 > JavaScript > 正文

jquery判断当前浏览器的实现代码

2019-11-20 11:19:40
字体:
来源:转载
供稿:网友

写了一个判断当前浏览器类型及版本的方法,只在IE 8/11 、谷歌 、360 浏览器(不完全)上测试过,需要用到jquery

核心代码:

;(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());

武林网小编特提供的完整测试代码:

<html> <head> <title>jquery 浏览器判断</title> </head> <body> <script src="http://demo.VeVB.COm/jslib/jquery/jquery-1.8.3.min.js"></script><script type="text/javascript"> (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);//使用方式alert(window.browser.name);//下面是ie F2中测试可以看到效果console.log(window.browser);console.log($.isIE());console.log($.isChrome());</script> </body> </html>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表