-2

使用一些简单的 JavaScript,我得到了似乎是为我的两段类似代码之一返回的错误值。因为browserName无论我在什么浏览器上测试代码,我都会将 Netscape 作为返回的值。 browserVer但是,似乎返回了正确的值,如下所示,使用谷歌浏览器。

browserVer结果:

5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/536.30.1 (KHTML, like Gecko) 版本/6.0.5 Safari/536.30.1

为什么是这样?

    var browserName = navigator.appName;
    var browserVer = navigator.appVersion;
4

2 回答 2

3

快速谷歌搜索navigator.appName实际含义会返回此 MDN 页面,其中包括以下事实:

出于兼容性原因,HTML5 规范还允许任何浏览器在此处返回“Netscape”。

相反,您可能应该使用像Modernizr这样的浏览器嗅探库

于 2013-10-22T00:23:12.317 回答
1

更好的搜索揭示了答案(为什么 JavaScript navigator.appName 会为 Safari、Firefox 和 Chrome 返回 Netscape?

“MDN 说:“这最初是 DOM Level 0 的一部分,但后来被包含在 HTML5 规范中。”请参阅此处的 Mozilla 文档。顺便说一句;这就是为什么它不能用于浏览器检测(可能仅用于 IE)。浏览器检测"

于 2013-10-22T00:22:50.150 回答