0

时不时地,我被要求在客户 Web 服务器上安装类似的东西,或者我们被问到是否支持 BrowserHawk(我们不支持)。

我想知道Modernizr是否可以让我的客户指向并告诉他们使用它?

4

1 回答 1

1

我没有使用 Browserhawk(事实上,直到现在我才听说过它),所以请不要认为我的意见是绝对正确的。

但是,我确实知道browsecap.ini,并且花了一些时间阅读Browserhawk 网站,我相当肯定它也是一个服务器端浏览器检测工具。

如果是这样,那么答案是“是”。当前的最佳实践是避免使用服务器端浏览器检测,而是使用客户端特征检测。这正是 Modernizr 所做的。

功能检测允许您根据用户浏览器的功能对站点进行更细粒度的调整,而不是简单地阻止拥有(或没有)特定浏览器的用户。如果需要,它还允许您为特定功能实施特定的后备解决方案。

由于浏览器市场的快速变化,从服务器端检测用户的浏览器是一个问题;您需要不断更新浏览器检测脚本以应对新版本。

此外,浏览器检测脚本可能无法正确检测稍微不常见的浏览器或浏览器外壳的用户,因此即使他们的浏览器应该能够显示该站点,他们也可能无法使用它的站点。此外,一些用户可能没有提供正确检测其浏览器所需的用户代理字符串;它被一些代理、防火墙等阻止,一些浏览器也允许对其进行修改,因此如果用户愿意,它很容易被欺骗。

但是,在不遗余力地促进功能检测优于浏览器检测之后,我需要指出所有这些的一个例外,那就是 IE。

旧版本的 IE 有很多错误。这与简单地缺少功能不同,因为您不能如此轻松地主动检查错误。如果您遇到 IE 错误的特定问题,那么进行浏览器检测以避免它们是合法的。(如果您只担心浏览器支持的内容,而不是实际的错误,则功能检测仍然有效)

但即使在这种情况下,也不需要像 browsercap.ini 或 Browserhawk 这样的工具。IE 有助于支持条件注释,它允许您为 IE 添加特定代码,而无需特意去检测它。

于 2011-10-24T11:46:23.047 回答