Der*_*會功夫 3 html javascript html5 shadow-dom custom-element
我正在努力扩展HTMLOptionElement,
<template id="cOptionTemplate">
<content></content>
</template>
<select>
<option is="custom-option">Test</option>
</select>
Run Code Online (Sandbox Code Playgroud)
var cOption = document.registerElement('custom-option', {
prototype: Object.create(HTMLOptionElement.prototype, {
createdCallback: {
value: function() {
var template = document.getElementById("cOptionTemplate")
var clone = document.importNode(template.content, true);
this.createShadowRoot().appendChild(clone);
}
},
attributeChangedCallback: {
value: function (attrName, oldVal, newVal){
switch(attrName){
case "attr1":
console.log(this);
}
}
}
}),
extends: "option"
});
Run Code Online (Sandbox Code Playgroud)
这是代码的演示.
但显然这不起作用,因为它已经有一个用户代理shadowRoot?
未捕获的InvalidStateError:无法在"元素"上执行"createShadowRoot":无法在已托管用户代理影子树的主机上创建影子根.
我从未见过这个错误,我认为它可以让你附加多个阴影根.它为什么会发生,是否有办法让它发挥作用?
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |