浏览器名称,版本值返回“Netscape”

时间:2013-10-22 00:19:32

标签: javascript

使用一些简单的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;

2 个答案:

答案 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属性。“