2014-10-16 70 views
1

我已经阅读了几篇关于功能检测的文章,并且它比浏览器检测更可靠,因为浏览器所在。为什么用户代理/浏览器谎言

我找不到他们为什么说谎的任何信息。有谁知道他们会这么做的原因吗?

回答

1

据我了解,站长做浏览器嗅探找到一个浏览器的功能,并限制他们发送到浏览器。如果浏览器就在于它的能力,他们将获得由网站管理员更多,你可以阅读更多:

http://farukat.es/journal/2011/02/499-lest-we-forget-or-how-i-learned-whats-so-bad-about-browser-sniffing

http://webaim.org/blog/user-agent-string-history/

+0

浏览器不会说谎他们的功能。但是,您可以通过任何开发人员工具更改用户代理字符串。或者......用户代理字符串有很多变体,因此不可能使用适当的功能保留浏览器/设备组合的有效数据库。如果操作系统升级,现在突然出现X作品,该怎么办?如此多的场景。这就是为什么功能检测是正确的选择。他们不能说谎,只能错误地实现功能。 – 2014-10-16 16:32:20

+0

您能否提供一些资料来源?我的第一个来源是Modernizr(特征检测)的创建者Faruk Ates,他说:“UA嗅探的最大问题是”UA“部分,因为浏览器在说谎,很多,他们开始说谎,发布了Microsoft Internet Explorer 2.0 ,而且他们继续说谎,直到今天,浏览者都在说谎他们是谁,他们可以随时做什么。“没有你的进一步证明,我更倾向于相信他。 – 2014-10-17 08:08:23

2

原因很简单:

由于网站看一下用户代理字符串并对浏览器做出假设,然后在浏览器更新为新版本时无效。

自网络开始以来,这种情况一直在持续。浏览器厂商不希望他们的新版本打破网络,因此他们调整UA字符串以欺骗现有网站上的代码。

最终,如果每个人都使用了UA字符串负责任和更新自己的网站,每当新版本的浏览器出来,然后浏览器就不需要撒谎。但是你必须承认,这是非常重要的。

特征检测工作得更好,因为当一个新的浏览器版本出来与功能,检测会自动把它捡起来没有任何浏览器需要做什么特别的事情,也不是网站的所有者。

当然,有些时候功能检测并不完美 - 例如,也许,如果一个功能存在,但在一个特定的浏览器的bug。在这种情况下,是的,您可能希望将浏览器检测作为回退。但在大多数情况下,特征检测是一个更好的选择。

相关问题