Javascript 浏览器名称、版本值返回“0”;“网景”;
使用一些简单的JavaScript,我得到了两段类似代码中的一段返回的似乎不正确的值。对于Javascript 浏览器名称、版本值返回“0”;“网景”;,javascript,Javascript,使用一些简单的JavaScript,我得到了两段类似代码中的一段返回的似乎不正确的值。对于browserName,无论在哪个浏览器上测试代码,我都会得到Netscape作为返回值browserVer似乎返回了正确的值,如下所示,使用谷歌浏览器 browserVer结果: 5.0(Macintosh;英特尔Mac OS X 10_8_5)AppleWebKit/536.30.1(KHTML,类似Gecko)版本/6.0.5 Safari/536.30.1 为什么会这样 var browse
browserName
,无论在哪个浏览器上测试代码,我都会得到Netscape作为返回值<但是,code>browserVer似乎返回了正确的值,如下所示,使用谷歌浏览器
browserVer
结果:
5.0(Macintosh;英特尔Mac OS X 10_8_5)AppleWebKit/536.30.1(KHTML,类似Gecko)版本/6.0.5 Safari/536.30.1
为什么会这样
var browserName = navigator.appName;
var browserVer = navigator.appVersion;
一次更好的搜索揭示了答案() MDN说:“这最初是DOM级别0的一部分,但后来被包含在HTML5规范中。” 请参见此处的Mozilla文档。
顺便说一句;这就是为什么这不能用于浏览器检测(可能仅适用于IE)。浏览器检测是一种不好的做法,您应该尽可能避免。请改为进行功能检测。但如果有人坚持这样做,他们应该改为使用userAgent属性。”快速搜索一下
navigator.appName
实际上意味着返回,其中包括以下事实:
HTML5规范还允许任何浏览器在此处返回“Netscape”,这是出于兼容性原因
相反,您可能应该使用类似Yep的浏览器嗅探库,在更改搜索的措辞后,我发现了相同的东西。谢谢你的分享:现代化。