2010-11-25 56 views
4

我需要使用Ruby制作if语句,该语句用于检查客户端的浏览器是否支持HTML5。如何检查浏览器是否支持使用Ruby的HTML5和CSS3功能?

+0

我添加了`css`标签。 – 2010-11-25 17:52:07

+0

你检查了http://html5test.com/?他们做了非常全面的html功能支持检查。 – 2010-11-25 18:17:29

+0

modernizr帮助您解决这个问题 – 2011-10-27 20:21:14

回答

9

简版:你将无法也不应该。

长版本:如果您执行一些用户代理嗅探,可能有可能确定用户的浏览器是否支持HTML5。但是,这需要花费相当多的努力才能获得正确的结果。更好的解决方案是使用像Modernizr(http://www.modernizr.com/)这样的功能在客户端进行功能检测。

1

可以根据HTTP_USER_AGENT字符串读取浏览器信息,但是,如上所述以及其他许多地方,欺骗该信息也很容易。在服务器端,我们只关心它,因为它让我们可以全面了解用于访问我们网站的客户端浏览器。

尝试对后端的浏览器做出反应并呈现不同内容的网站已经尝试了一段时间,但由于浏览器如何欺骗其他浏览器,但没有相同的错误而失败。

正如@Stephen Orr所说,CSS是一种更好的处理方式。确定它很糟糕,仍然很容易出错,但它比嗅探浏览器的签名要好。我们过去常常诅咒IE的每一个版本,因为它打破了以前的修正。幸运的是,随着厂商逐渐走向标准,情况似乎越来越好。

1

可以在HTML5上做Feature detection,在您需要时从HTML5检测单个功能。然而,没有办法检测浏览器是否支持HTML5作为一个大块 - 因为没有“官方”方式来判断浏览器是否支持所有HTML5或仅支持HTML5的一部分。

0
< [html5 element] id="somethingtobedazzledby"> 
    Upgrade your browser 
</ [html5 element] > 
相关问题