检测浏览器版本(综合整理)

浏览器版本号检测

本文检测部分来自于Missyouzhang的专栏
浏览器的navigator.userAgent来自于网络
完整的用户代理字符串检测脚本来自于高程3P242

浏览器的navigator.userAgent

桌面

============================================

IE
  而IE各个版本典型的userAgent如下:
  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
  Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
  其中,版本号是MSIE之后的数字。

注:
MSIE后面跟的数字为IE的版本号,如MSIE 8.0代表IE8, Windows NT 6.1 对应操作系统 windows 7
Windows NT 6.0 对应操作系统 windows vista  
Windows NT 5.2 对应操作系统 windows 2003   
Windows NT 5.1 对应操作系统 windows xp   
Windows NT 5.0 对应操作系统 windows 2000   

UNIX/LINUX下的为X11代替,具体可以从网上找下,百度百科上也有的。

Firefox
  Firefox几个版本的userAgent大致如下:
  Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12  其中,版本号是Firefox之后的数字。
注:N: 表示无安全加密   I: 表示弱安全加密   U: 表示强安全加密     上面的U代表加密等级
Opera
  Opera典型的userAgent如下:
  Opera/9.27 (Windows NT 5.2; U; zh-cn)
  Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
  Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0 
  其中,版本号是靠近Opera的数字。

Safari
  Safari典型的userAgent如下:
  Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
  Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
  其版本号是Version之后的数字。

Chrome
  目前,Chrome的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 
  其中,版本号在Chrome之后的数字。

Navigator
目前,Navigator的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6
其中,版本号在Navigator之后的数字。

360SE                                                                                                                                                                  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; 360SE)


360

[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; 360SE)

360极速浏览器

[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;  QIHU 360EE)

傲游浏览器

[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon/3.0)

TT

[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; TencentTraveler 4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )

safari

[USER_AGENT] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.5 Safari/534.55.3

==============================

移动

==============================

安卓 QQ浏览器

Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.1 Mobile Safari/533.1

安卓 原生浏览器

Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

安卓 UC

Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31

安卓 Opera

Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1210241554) Presto/2.11.355 Version/12.10

三星手机

SAMSUNG-SGH-G508E/G508EZCIG2 SHP/VPP/R5 NetFront/3.4 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1

iphone safria

Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3

iphone QQ

MQQBrowser/38 (iOS 4; U; CPU like Mac OS X; zh-cn)

iphone UC

IUC(U;iOS 5.1.1;Zh-cn;320*480;)/UCWEB8.9.1.271/42/800

塞班 自带浏览器

Nokia5320/04.13 (SymbianOS/9.3; U; Series60/3.2 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

塞班 QQ浏览器

Nokia5320(19.01)/SymbianOS/9.1 Series60/3.0

检测

JQ判断浏览器

通过jQuery 判断浏览器的内核及版本号

<script type="text/javascript">
    $(function () {
        if ($.browser.msie && ($.browser.version == "7.0")) {
            $("#yourannet").css("margin-left", "10px");
        }  //IE7浏览器
        else if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style) {
            $("#yourannet").css("margin-left", "15px");
        }  //IE6浏览器
        else if ($.browser.msie && ($.browser.version == "8.0")) {
            $("#yourannet").css("margin-left", "20px");
        }  //IE8浏览器
        else if ($.browser.msie && ($.browser.version == "9.0")) {
            $("#yourannet").css("margin-left", "25px");
        } // IE9 浏览器
        else if (window.navigator.userAgent.toLowerCase().indexOf("360se") >= 1) {
            $("#yourannet").css("margin-left", "30px");
        }//360浏览器
    })

jQuery 使用的是通过正则来匹配userAgent判断浏览器的种类和版本. 如果我们要来判断当前浏览器是否是IE6应该如何来判断?

$(function() {
  if($.browser.msie) {
  alert("this is msie");
}
else if($.browser.safari)
{
  alert("this is safari!");
}
else if($.browser.mozilla)
{
  alert("this is mozilla!");
}
else if($.browser.opera) {
  alert("this is opera");
}
else {
  alert("i don't konw!");
}

以下是jquery的正则表达式:支持区分ie、firefox、opera、chrome、safari

// browser check-----start
 var userAgent = navigator.userAgent, // userAgent
 rMsie = /.*(msie) ([\w.]+).*/, // ie
 rFirefox = /.*(firefox)\/([\w.]+).*/, // firefox
 rOpera = /(opera).+version\/([\w.]+)/, // opera
 rChrome = /.*(chrome)\/([\w.]+).*/, // chrome
 rSafari = /.*version\/([\w.]+).*(safari).*/;// safari
 jMeteor.browser = {};
 var ua = userAgent.toLowerCase();
 function uaMatch(ua) {
  var match = rMsie.exec(ua);
  if (match != null) {
   return { browser : match[1] ¦¦ "", version : match[2] ¦¦ "0" };
  }
  var match = rFirefox.exec(ua);
  if (match != null) {
   return { browser : match[1] ¦¦ "", version : match[2] ¦¦ "0" };
  }
  var match = rOpera.exec(ua);
  if (match != null) {
   return { browser : match[1] ¦¦ "", version : match[2] ¦¦ "0" };
  }
  var match = rChrome.exec(ua);
  if (match != null) {
   return { browser : match[1] ¦¦ "", version : match[2] ¦¦ "0" };
  }
  var match = rSafari.exec(ua);
  if (match != null) {
   return { browser : match[2] ¦¦ "", version : match[1] ¦¦ "0" };
  }
  if (match != null) {
   return { browser : "", version : "0" };
  }
 }
 var browserMatch = uaMatch(userAgent.toLowerCase());
 if (browserMatch.browser) {
  jMeteor.browser[browserMatch.browser] = true;
  jMeteor.browserName = browserMatch.browser;
  jMeteor.browser.version = browserMatch.version;
  jMeteor.browser.language = (navigator.language ? navigator.language
    : navigator.userLanguage ¦¦ "");
 }
 // browser check-----end
    
     
    使用方法:
    Javascript代码
    jMeteor.browser.msie //判断是否为ie,返回true则代表是
    jMeteor.browserName //浏览器名称
    jMeteor.browser.version //浏览器版本
    jMeteor.browser.language //语言
</script>

通过浏览器版本信息判断各浏览器

var _uat=navigator.userAgent; 
if(_uat.indexOf("MSIE 6.0")>0) alert("ie6"); 
else if(_uat.indexOf("MSIE 7.0")>0) alert("ie7"); 
else if(_uat.indexOf("MSIE 8.0")>0) alert("ie8"); 
else if(_uat.indexOf("Firefox")>0) alert("firefox"); 

CSS判断浏览器

#example{color:red ;} /*firefox*/ 
* html #example{color:blue;} /*ie6*/ 
*+html #example{color:green;} /*ie7*/

HTML判断浏览器

<!--[if !IE]><!-->除IE外都可识别<!--<![endif]--> 
<!--[if IE]> 所有的IE可识别<![endif]--> 
<!--[if IE 6]> 仅IE6可识别<![endif]--> 
<!--[if lt IE 6]> IE6以及IE6以下版本可识别<![endif]--> 
<!--[if gte IE 6]> IE6以及IE6以上版本可识别<![endif]--> 
<!--[if IE 7]> 仅IE7可识别<![endif]--> 
<!--[if lt IE 7]> IE7以及IE7以下版本可识别<![endif]--> 
<!--[if gte IE 7]> IE7以及IE7以上版本可识别<![endif]--> 

完整的用户代理字符串检测脚本

来自于高程3p242

//完整的用户代理字符串检测脚本
var client = function () {

    //呈现引擎
    var engine = {
        ie: 0,
        gecko: 0,
        webkit: 0,
        khtml: 0,
        opera: 0,
        //完整的版本号
        ver: null
    };


    //浏览器
    var browser = {
        //主要浏览器
        ie: 0,
        firefox: 0,
        safari: 0,
        konq: 0,
        opera: 0,
        chrome: 0,
        //具体的版本号
        ver: null
    };


    //平台,设备的操作系统
    var system = {
        win: false,
        mac: false,
        xll: false,
        //移动设备
        iphone: false,
        ipod: false,
        ipad: false,
        ios: false,
        android: false,
        nokiaN: false,
        winMobile: false,
        //游戏系统
        will: false,
        ps: false
    };

    //检测呈现引擎和浏览器
    var ua = navigator.userAgent;
    if (window.opera) {
        engine.ver = browser.ver = window.opera.version();
        engine.opera = browser.opera = parseFloat(engine.ver);
    } else if (/AppleWebKit\/(\S+)/.test(ua)) {
        engine.ver = RegExp.$1;
        engine.webkit = parseFloat(engine.ver);
        //确定是chrome还是Safari
        if (/Chrome\/(\S+)/.test(ua)) {
            browser.ver = RegExp.$1;
            browser.chrome = parseFloat(browser.ver);
        } else {
            //近似地确定版本号
            var safariVersion = 1;
            if (engine.webkit < 100) {
                safariVersion = 1;
            } else if (engine.webkit < 312) {
                safariVersion = 1.2;
            }
            else if (engine.webkit < 412) {
                safariVersion = 1.3;
            }
            else {
                safariVersion = 2;
            }
            browser.safari = browser.ver = safariVersion;
        }
    } else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)) {
        engine.ver = browser.ver = RegExp.$1;
        engine.khtml = browser.konq = parseFloat(engine.ver);
    } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)) {
        engine.ver = RegExp.$1;
        engine.gecko = parseFloat(engine.ver);
        //确定是不是firefox
        if (/Firefox\/(\S+)/.test(ua)) {
            browser.ver = RegExp.$1;
            browser.firefox = parseFloat(browser.ver);
        }
    } else if (/MSIE ([^;]+)/.test(ua)) {
        engine.ver = browser.ver = RegExp.$1;
        engine.ie = browser.ie = parseFloat(engine.ver);
    }
//检测浏览器
    browser.ie = engine.ie;
    browser.opera = engine.opera;

    //检测平台
    var p = navigator.platform;
    system.win = p.indexOf("Win") == 0;
    system.mac = p.indexOf("Mac") == 0;
    system.xll = (p == "Xll") || (p.indexOf("Linux") == 0);

    //检测Windows操作系统
    if (system.win) {
        if (/Win(?:dows)?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {

            if (RegExp.$1 == "NT") {
                switch (RegExp.$2) {
                    case "5.0":
                        system.win = "2000";
                        break;
                    case "5.1":
                        system.win = "XP";
                        break;
                    case "6.0":
                        system.win = "Vista";
                        break;
                    case "6.1":
                        system.win = "7";
                        break;
                    default :
                        system.win = "NT";
                        break;
                }
            } else if (RegExp.$1 == "9x") {
                system.win = "ME";
            } else {
                system.win = RegExp.$1;
            }
        }
    }

    //移动设备
    system.iphone = ua.indexOf("iPhone") > -1;
    system.ipod = ua.indexOf("iPod") > -1;
    system.ipad = ua.indexOf("iPad") > -1;
    system.nokiaN = ua.indexOf("NokiaN") > -1;
    //windos mobile
    if (system.win == "CE") {
        system.winMobile = system.win;
    } else if (system.win == "Ph") {
        if (/Windows Phone OS (\d+. \d)/.test(ua)) {
            system.win = "Phone";
            system.winMobile = parseFloat(RegExp.$1);
        }
    }
//检测iOS 版本
    if (system.mac && ua.indexOf("Mobile") > -1) {
        if (/CPU (?:iPhone )?OS (\d+_\d+)/.test(ua)) {
            system.ios = parseFloat(RegExp.$1.replace("_", "."));
        } else {
            system.ios = 2;//不能真正检测出来,所以只能猜测
        }
    }
    //检测Android版本
    if (/Android (\d+\. \d+)/.test(ua)) {
        system.android = parseFloat(RegExp.$1);
    }
    //游戏系统
    system.will = ua.indexOf("Wii") > -1;
    system.ps = /playstation/i.test(ua);
    //返回这些对象
    return
    {
        engine:engine,
                browser
    :
        browser,
                system
    :
        system
    }
    ;

}();
posted @ 2017-07-17 12:05  哲楠  阅读(775)  评论(0编辑  收藏  举报