我创建了一个userAgent嗅探JavaScript应用程序(用于实验/学习的目的只有),我差不多完成了。但是,对于$ browser.version,我得到了整个userAgent字符串。我已经谷歌和google'd,找不到答案。这里是我的代码:我一直得到错误的输出
// contemplate new $browser module
var $browser, versionOffset, ua = navigator.userAgent;
if(ua.toLowerCase().indexOf('opera') > -1) {
$browser = {
name: "Opera",
engine: "Presto",
prefix: "-o-",
publisher: "Opera Software ASA",
version: ua.substring(versionOffset + 6)
}
}
else if(ua.toLowerCase().indexOf('msie') > -1) {
$browser = {
name: "Internet Explorer",
engine: "Trident",
prefix: "-ms-",
publisher: "Microsoft",
version: ua.substring(versionOffset + 5)
}
}
else if(ua.toLowerCase().indexOf('chrome') > -1) {
$browser = {
name: "Chrome",
engine: "WebKit",
prefix: "-webkit-",
publisher: "Google Inc.",
version: ua.substring(versionOffset + 7)
}
}
else if(ua.toLowerCase().indexOf('safari') > -1) {
$browser = {
name: "Safari",
engine: "WebKit",
prefix: "-webkit-",
publisher: "Apple Computer Inc.",
version: ua.substring(versionOffset + 8)
}
}
else if(ua.toLowerCase().indexOf('firefox') > -1) {
$browser = {
name: "Firefox",
engine: "Gecko",
prefix: "-moz-",
publisher: "Mozilla",
version: ua.substring(versionOffset + 8)
}
}
在我的HTML
所以,我做:
<script>
alert($browser.name + " " + $browser.version);
</script>
但我在Chrome输出为:
[JavaScript提醒]:
Chrome浏览器($ browser.name)
Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.4(KHTML,如Gecko)Chrome/22.0.122 9.91 Safari浏览器/ 537.4(browser.version $)
但我想,显然是 “Chrome浏览器22” 或 “铬22.0.1229.91”
什么是versionOffset,你从来没有在任何地方设置它。 – aquinas
那么,经过研究,好像我应该使用一个占位符变量作为基础,所以我将其命名为versionOffset,我应该不这样做吗? – ModernDesigner