【问题标题】:What happens if you use custom attribute in a HTML tag?如果在 HTML 标签中使用自定义属性会发生什么?
【发布时间】:2011-04-27 19:28:37
【问题描述】:

这个问题与jQuery 本身无关,但我发现了一个名为Metadata 的插件,找到了there,其中一个示例使用了自定义标签属性:<li data="{some:'random', json: 'data'}">...</li>

问:是跨浏览器吗?验证标记时会失败吗?

谢谢。

【问题讨论】:

    标签: custom-attributes html


    【解决方案1】:

    浏览器不会在意,因为很少有浏览器会真正验证 HTML。但是,如果您尝试将其视为 XHTML,它将失败,因为它不是有效的 XHTML。

    【讨论】:

    • 这是否意味着我必须删除我的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 或者我仍然可以使用它但尝试验证我的标记将毫无用处?
    • 我看不出它以任何方式影响 SEO。
    • @Cybrix - 您可以使用 rel 和 rev 属性来存储数据。它们是有效的,并且是许多 jQuery 插件常用的方法。
    • 可以 做的是为您的自定义属性使用单独的命名空间。为他们提供您自己的 DTD 不会导致验证失败。
    • <html xmlns:somedata="http://example.com/somedata.dtd"> ... <li somedata:data="{some:'random', json: 'data'}">
    【解决方案2】:

    浏览器不会在意。大多数(如果不是所有浏览器)只是忽略非法属性。但是,如果您尝试验证它,它将失败。您需要做的是弄清楚您是否对此感到满意。如果您只是保留文档类型。如果不更改文档类型。需要注意的一件事是,即使您保留 doctype 和非法属性,它也不会以任何未验证的方式影响您的网站。

    事实上,如果在页面加载后添加数据属性,您的标记可能仍会验证 - 这意味着在验证发生时数据属性不会存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 2022-01-15
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      相关资源
      最近更新 更多