对于CustomElements,我可以这样做:
class MyElement extends HTMLElement {}
我可以为SVG Elements做同样的事吗?像
class MyOwnRectangle extends SVGRectElement {}
如果它有效,我可以让某人为jsbin而烦恼吗?
如果没有,为什么不呢?
这有一些非常好的用例,例如能够在元素本身中存储模型数据。 SVG 操作主要用于两个主要方面:
像JointJS这样的库有自己的类抽象(扩展了Backbone View)以存储与视图相关的模型数据(屏幕上的SVG图表。
像WebComponents最终可以用标准方式替换jQuery插件,Framework X的组件,为什么不对SVG做同样的事情呢?
最后 ,
Polymer 0.5如何做到这一点?
Does Polymer.js support inner SVG elements?
此修补程序如何在Polymer 1.0中执行此操作?
https://github.com/Polymer/polymer/pull/3372
现在有什么选择?
我想我们可以延长HTMLElement
。在我们的ShadowDOM中使用<svg>
元素,然后附加我们实际想要扩展的所有SVG标记,如<rect>
,<polyline>
等!也许更清洁的方法呢?
将来会实施吗?
答案 0 :(得分:2)
如果result的命名空间不是HTML命名空间,则抛出NotSupportedError。
所有SVG元素都在SVG名称空间中。因此,该规定排除了支持。
在SVG中存储数据的方法包括the <metadata> tag和data- attributes。