2011-10-24 39 views

回答

1

我还没有使用过Browserhawk(事实上,我从来没有听说过它,直到现在),所以请不要认为我的观点是正确的。

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

如果是这样,那么答案是'是'。目前的最佳做法是避免使用服务器端浏览器检测,而是使用客户端功能检测。而这正是Modernizr所做的。

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

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

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

但是为了促进浏览器检测功能检测,我需要指出一个例外,那就是IE。

老版本的IE有很多bug。这与简单地缺少功能不同,因为您不能主动检查错误。如果您遇到了IE错误的具体问题,那么浏览器检测以避免它们是合法的。 (如果您只关心浏览器支持的功能,而不是实际的错误,则功能检测仍然有效)

但即使在这种情况下,browsercap.ini或Browserhawk等工具也是不必要的。 IE有助于支持Conditional Comments,它允许您为IE添加特定的代码,而无需自己去检测它。

相关问题