SVG文档是否支持自定义数据属性?

在HTML5中,元素可以具有存储在名称以data-开头的XML属性中的任意元data- ,如<p data-myid="123456"> 。 这也是SVG规范的一部分吗?

实际上,这个技术在许多地方对SVG文档工作正常。 但是,我想知道它是否是官方SVG规范的一部分,因为格式足够年轻,浏览器之间仍然存在很多不兼容问题,特别是在移动设备上。 所以在提交代码之前,我想知道是否可以期待未来的浏览器能够支持这一点。

我从工作组邮件列表中发现了这个消息 ,表示他们“期待他们”会支持它。 这是否成为官方?

虽然其他答案在技术上是正确的,但他们忽略了SVG为data-*提供另一种机制data-*的事实。 SVG 允许包含任何属性和标签 ,只要它与现有的属性和标签不冲突(换句话说:你应该使用名称空间)。

要使用这个(等价的)机制:

  • 使用mydata:id而不是data-myid ,如下所示: <p mydata:id="123456">
  • 请确保您在SVG开始标记中定义名称空间,如下所示: <svg xmlns:mydata="http://www.myexample.com/whatever">

data-*属性是HTML5的一部分。 这不是一个通用的XML属性。

目前的SVG W3C推荐标准是SVG 1.1 (2011-08)。 它不允许这个属性,因为你可以检查属性列表 。

SVG 2工作草案 (2012-08)也是如此。 更新(2015) :它似乎是为了支持SVG 2中的 data-*属性(目前还是工作草案)。

目前的SVG2草案正式支持SVG元素的data-*属性。 看到:

  • w3c/svgwg commit 1cb4ee9 :在所有SVG元素上添加了SVGElement.dataset和允许的data-*属性。
  • ACTION-3694:将“data- *”属性注释添加到规范中。 (创builddate:2015年1月15日)
  • 解决scheme:我们将保留“data- *”属性用于SVG内容。 处理它们的API在Element上。 (来自SVG WG Telecon,2015年1月15日)
  • https://lists.w3.org/Archives/Public/www-svg/2014Dec/0022.html

有一个更一般的机制。

svg支持可能包含来自其他命名空间的任意xml的desc元素。 通过依赖ids或refid属性链接这些元素的实例或来自您自己的名称空间的子节点。

这是规范(5.4)的相关部分 。