【问题标题】:Is there any problem with using HTML5's "data-*" attributes for older browsers?对旧版浏览器使用 HTML5 的“data-*”属性有什么问题吗?
【发布时间】:2023-03-11 18:02:02
【问题描述】:

我想将一些自定义数据与一些 HTML 节点相关联。我打算使用新的 HTML5 样式的 'data-*' 属性。例如:<tr class="foo" data-typeid="7">…,然后我将通过读取 $(node).attr("data-typeid") 的值来选择此 HTML 节点并显示/隐藏它等。

但是,此网页也需要与旧版浏览器一起使用。我没有将 data-* 属性用作特殊属性,但我想知道旧版浏览器是否会忽略、擦除或使该属性无法访问,因为它不是有效的 HTML4。

【问题讨论】:

标签: javascript jquery html cross-browser custom-data-attribute


【解决方案1】:

Internet Explorer 和 Microsoft 添加了几个不是有效 HTML4 的自定义属性。浏览器不会根据规范检查元素属性,您可以根据需要将属性命名为 roryscoolinfo="hello"(尽管您不应该这样做)。

Dojo 工具包添加了它的自定义 dojo* 属性。

今天可以使用data-,带有 HTML5 文档类型。

【讨论】:

    【解决方案2】:

    确实没有,它们在 HTML4 中当然不是 100% 正确/有效的用法......但它们也不会引起问题,所以它们仍然是一个很棒的解决“我需要一个属性”问题的方法。

    如果有帮助,我在支持 IE6 的同时使用了这些,并且到目前为止问题为零,而且我不记得有一个 SO 问题报告过任何问题。

    【讨论】:

    • HTML5 旨在尽可能与现有浏览器行为兼容。数据属性是不错的地方之一,例如 HTML5 文档类型,似乎没有太多问题。
    • 在 IE 8 及以下版本中使用 XHTML 1.0 Transitional doctype 似乎无法将数据类型与 jquery 一起使用。
    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2016-05-20
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多