浏览器版本号检测
本文检测部分来自于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
}
;
}();