52

为什么navigator.appNameSafari、Firefox 和 Chrome 会返回“Netscape”?

他们与旧浏览器网景有什么关系?难道是因为DOM0?

4

4 回答 4

45

是的,那是为了兼容性问题,不能依赖。
MDN说:“这最初是 DOM Level 0 的一部分,但后来被包含在 HTML5 规范中。”

请参阅此处的Mozilla文档

顺便提一句; 这就是为什么这不能用于浏览器检测。浏览器检测是一种不好的做法,您应该尽可能避免使用它。改为进行特征检测。但是,如果有人坚持这一点;他们应该改用该userAgent属性。

更新1:根据兼容性更改IE11现在还返回属性,"Netscape"navigator.appName反映 HTML5 标准并匹配其他浏览器的行为。另请参阅此处userAgent的字符串更改...更多关于特征检测的信息...

更新 2Microsoft Edge也返回"Netscape".navigator.appName

于 2013-01-29T01:00:40.030 回答
8

根据 Johnny Stenback 的帖子:

这在很久以前在 mozilla 新闻组上进行了辩论,并决定即使在 mozilla 中 navigator.appName 也应该返回“Netscape”,因为如果要更改使用某些浏览器嗅探代码的网络上的每个页面(这是一个巨大的部分)当前网络的)需要识别 mozilla,而这不会发生,也没有理由这样做,因为 mozilla == netscape == mozilla 就内容开发人员而言。

来源在这里

于 2013-01-29T01:06:16.937 回答
3

从 IE11 开始,Explorer 现在在调用 navigator.appName 时也会返回“Netscape”;

更新 虽然这个答案现在已经过时了,但这里是上述声明的链接:https ://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/dev-guides /bg182625(v=vs.85)?redirectedfrom=MSDN#legacy-api-additions-changes-and-removals

于 2013-10-12T10:17:16.880 回答
0

现在只需搜索 navigator.userAgent 以查找 IE 11 的浏览器检测,然后查找其布局引擎。根据我的经验,它运作良好。看到这个帖子

于 2018-12-12T15:34:10.937 回答