使用javascript實(shí)現(xiàn)判斷當(dāng)前瀏覽器

字號:


    寫了一個判斷當(dāng)前瀏覽器類型及版本的方法,只在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());