我有一个名为x-foo
的自定义元素。我想扩展它,并创建一个x-foo-extended
元素,但它不起作用。我收到这个错误:
Uncaught NotSupportedError:无法在'Document'上执行'registerElement':类型'x-foo-extended'
的注册失败。 'extends'中指定的标记名称是自定义元素名称。改为使用继承。
var xFooExtendedProto = Object.create(xFoo.prototype);
xFooExtendedProto.someCustomFunc = function() {
// ...
};
xFooExtended = document.registerElement('x-foo-extended', {
prototype: xFooExtendedProto,
extends: 'x-foo'
});
答案 0 :(得分:3)
根据spec,这是不允许的。 从规格: "如果BASE不存在或者是自定义元素的接口,请设置ERROR 到InvalidName并停止。"
来源:正如在Chrome中实施自定义元素的人所描述的那样 https://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0155.html