1 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
很想被證明是錯(cuò)誤的,只是在SVG項(xiàng)目上花了2個(gè)月
AFAIK,你不能擴(kuò)展SVG元素
只能在 HTML 命名空間中創(chuàng)建自定義元素http://www.w3.org/1999/xhtml
SVG 元素位于 SVG 命名空間中http://www.w3.org/2000/svg
從文檔: https://html.spec.whatwg.org/multipage/custom-elements.html#element-definition
如果擴(kuò)展的元素接口和 HTML 命名空間是 HTMLUnknownElement,
則拋出一個(gè)“NotSupportedError”DOMException。
和
如果命名空間不是 HTML 命名空間,則返回 null
正在進(jìn)行的關(guān)于允許其他命名空間的 W3C 討論如下:https://github.com/w3c/webcomponents/issues/634
HTML 命名空間也有限制
Apple/Safari實(shí)現(xiàn)了Autonomous Custom Elements(從HTMLElement擴(kuò)展而來)
但拒絕實(shí)現(xiàn)自定義內(nèi)置元素(從 HTML 命名空間擴(kuò)展任何內(nèi)置元素)
如果要生成 SVG,則必須擴(kuò)展并生成整個(gè) SVG 標(biāo)記:HTMLElement
<svg xmlns='http://www.w3.org/2000/svg' viewBox='V'><circle cx='X' cy='Y' r='R'/></svg>
添加回答
舉報(bào)