转:浏览器的用户代理字符串
2012-07-29 18:32 @影子@ 阅读(469) 评论(0) 收藏 举报每个浏览器都有它自己的用户代理(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
浙公网安备 33010602011771号