【发布时间】:2019-12-11 09:47:39
【问题描述】:
我有一个自定义 HTML 标签<fancy-foo>,我想扩展它的功能。一些<fancy-foo> 元素将使用pretty-bar 自定义元素进行扩展,这样我就可以在我的HTML 中将它们用作
<fancy-foo is="pretty-bar">
<!-- content -->
</fancy-foo>
所以,我定义类FancyFoo 和PrettyBar,定义fancy-foo 元素并使用pretty-bar 扩展它,如下所示:
class FancyFoo extends HTMLElement {
constructor() {
super();
}
}
class PrettyBar extends FancyFoo {
constructor() {
super();
}
}
window.customElements.define('fancy-foo', FancyFoo);
window.customElements.define('pretty-bar', PrettyBar, {extends: 'fancy-foo'});
遗憾的是,谷歌浏览器会吐出错误
未捕获的 DOMException:无法在“CustomElementRegistry”上执行“定义”:“fancy-foo”是有效的自定义元素名称
这是一个奇怪的错误。奇怪的是,它说“fancy-foo”是一个有效的自定义元素名称;我知道,但是为什么会抛出错误呢?
这是怎么回事?
【问题讨论】:
标签: html custom-element