Modernizr是BrowserHawk等浏览器功能工具的替代品吗?

时间:2011-10-24 11:23:42

标签: html browser cross-browser modernizr

我不时会被要求在客户网络服务器上安装类似this的内容,或者我们被问及是否支持BrowserHawk(我们不支持)。

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

1 个答案:

答案 0 :(得分:1)

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

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

如果是这种情况,则答案为“是”。目前的最佳做法是避免使用服务器端浏览器检测,而是使用客户端功能检测。而这正是Modernizr所做的。

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

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

此外,浏览器检测脚本可能无法正确检测到稍微更不寻常的浏览器或浏览器外壳的用户,因此即使其浏览器应该能够显示该网站,他们也可能会遇到使用它的网站的问题。此外,某些用户可能无法提供正确检测其浏览器所需的用户代理字符串;它被一些代理,防火墙等阻止,一些浏览器也允许它被修改,因此如果用户想要它可以很容易被欺骗。

但是我已经花了很长时间来推广浏览器检测的特征检测,我需要指出一个例外,这就是IE。

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

但即使在这种情况下,也不需要诸如browsercap.ini或Browserhawk之类的工具。 IE有用地支持Conditional Comments,它允许您为IE添加特定代码,而不必费力地检测它。