2

我有一个关于 Rails 3 如何使用 XHTML doctypes 的简单问题。由于 Rails 3 使用 UJS 进行 ajax 调用(甚至是普通调用,如删除调用),并且通过使用 HTML5 数据属性来实现,那么,由于 XHTML 不支持数据属性,标记会自动失效吗?

4

1 回答 1

6

这些data-*属性在XHTML5中有效,它是 HTML5 的编码之一。它们在 XHTML 1.0 中无效,但这可能不是什么大问题。

最有可能的是,如果您将内容提供给现实世界的浏览器,它们会将其解析为 HTML,而不是 XHTML。如果您将内容提供为text/html,浏览器会将其解析为 HTML。如果您将其作为application/xhtml+xml.,IE 6 会将其呈现为原始 XML,而不是 HTML,并且在其他浏览器中,如果您犯了一个小错误,他们将停止解析它并显示一条丑陋的错误消息,而不是继续尝试解析其余的内容。如果您将其作为text/html,那么浏览器会将其解析为text/html,因此它是否是有效的 XHTML 并不重要。

即使它是无效的 XHTML 1.0,它仍然是格式良好的,并且 Web 浏览器不会验证用户代理,因此内容是否有效并不重要。属性的全部意义在于data-*为页面上的脚本提供私有数据。由于data-*属性不会妨碍文档的格式正确,浏览器仍然可以很好地解析文档,因此您的脚本将可以访问数据,无论数据是否是有效的 XHTML。

结果是:这些属性在 HTML5 和 XHTML5 中有效。它们在 XHTML 1.0 中无效,但这并不重要,因为这些属性适用于所有主流浏览器,为页面上的脚本提供私有数据。

于 2010-09-12T03:07:38.690 回答