使用一些简单的JavaScript,我得到的两个类似代码之一的返回值似乎不正确。对于browserName
,无论我在哪个浏览器上测试代码,我都会返回Netscape值。但是,browserVer
似乎返回正确的值,如下所示使用Google Chrome。
browserVer
结果:
5.0(Macintosh; Intel Mac OS X 10_8_5)AppleWebKit / 536.30.1(KHTML,与Gecko一样)Version / 6.0.5 Safari / 536.30.1
这是为什么?
var browserName = navigator.appName;
var browserVer = navigator.appVersion;
答案 0 :(得分:3)
快速了解navigator.appName
实际意味着返回this MDN page的Google,其中包括以下事实:
出于兼容性原因,HTML5规范还允许任何浏览器在此处返回“Netscape”。
相反,您应该使用浏览器嗅探库,如Modernizr
答案 1 :(得分:1)
更好的搜索显示答案(Why does JavaScript navigator.appName return Netscape for Safari, Firefox and Chrome?)
“MDN说:”这最初是DOM Level 0的一部分,但已经包含在HTML5规范中。“ 请在此处查看Mozilla文档。 BTW;这就是为什么这不能用于浏览器检测(可能只适用于IE)。浏览器检测是一种糟糕的做法,您应该尽可能避免使用它。改为进行特征检测。但是,如果有人坚持这一点;他们应该使用userAgent属性。“