每个浏览器都有它自己的用户代理(user agent)字符串,里面包含了浏览器和操作系统等信息。通过使用这个字符串,我们可以处理跨浏览器的差异。用户代理字符串保存在 navigator.userAgent 变量中,一些常见浏览器的取值如下(稍有精简):
MSIE | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E) |
Firefox | Mozilla/5.0 (Windows NT 5.1; rv:10.0.3) Gecko/20100101 Firefox/10.0.3 |
Safari | Mozilla/5.0 (Macintosh; U) AppleWebKit/533.20 (KHTML, like Gecko) Version/5.0.4 Safari/533.20 |
Chrome | Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.9 Safari/535.7 |
Opera | Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00 |
国内也有好几个基于 WebKit 的浏览器,其中只有傲游浏览器在 UA 中仅标明 AppleWebKit,其它浏览器都同时标明 AppleWebKit 和 Chrome。
再来看看移动设备浏览器的用户代理字符串(稍有精简):
Safari for iPhone | Mozilla/5.0 (iPhone;) AppleWebKit/420+ Version/3.0 Mobile/1A543a Safari/419.3 |
Safari for iPad | Mozilla/5.0 (iPad;) AppleWebKit/531.21 Version/4.0 Mobile/7B334b Safari/531.21 |
Safari for Android | Mozilla/5.0 (Android 2.3.4;) AppleWebKit/533.1 Version/4.0 Mobile Safari/533.1 |
Chrome for Phone | Mozilla/5.0 (Android 4.0.4;) AppleWebKit/535.19 Chrome/18.0 Mobile Safari/535.19 |
Chrome for Tablet | Mozilla/5.0 (Android 4.0.4;) AppleWebKit/535.19 Chrome/18.0 Safari/535.19 |
另外,如果需要检测用户使用的操作系统,也可以用 navigator.platform。例如:
var
platform = (
function
() {
var
pl = navigator.platform;
if
(pl.indexOf(
'Win'
) == 0) {
return
'windows'
;
}
else
if
(pl.indexOf(
'Mac'
) == 0) {
return
'macos'
;
}
else
if
(pl.indexOf(
'Linux'
) == 0 || pl.indexOf(
'X11'
) == 0) {
return
'linux'
;
}
else
if
(pl.indexOf(
'iPhone'
) == 0 || pl.indexOf(
'iPad'
) == 0) {
return
'ios'
;
}
else
if
(pl.indexOf(
'android'
) == 0) {
return
'android'
;
}
else
{
return
'unknown'
;
}
})();
|
参考资料:
[1] HTML DOM userAgent 属性
[2] User agent - Wikipedia, the free encyclopedia
[3] UserAgentString.com
[4] Chrome for Android User-Agent
[5] Gecko user agent string reference
[6] window.navigator.platform - MDN
[7] Don’t forget navigator.platform
转载自:http://www.cnblogs.com/zoho/archive/2012/04/06/2434777.html