Javascript 扩展HTMLSelectElement 最近,出于语义和可访问性方面的原因,我尝试扩展一个HTMLSelect元素,而不是创建一个全新的元素,即: let customSelect = function () { customElements.define( "custom-select", class CustomSelect extends HTMLSelectElement { connectedCallback() { this.attachShadow({ mode: "open" }); this.shadowRoot.innerHTML = ` test `; } }, { extends: "select" } ); }; export default customSelect;
它返回了以下错误:custom select.js:6 Uncaught DomeException:未能对“元素”执行“attachShadow”:此元素不支持attachShadow 好的,这是可以预测的 因为我不能使用shadowdom,所以我的问题是从那里得到的最佳解决方案是什么Javascript 扩展HTMLSelectElement 最近,出于语义和可访问性方面的原因,我尝试扩展一个HTMLSelect元素,而不是创建一个全新的元素,即: let customSelect = function () { customElements.define( "custom-select", class CustomSelect extends HTMLSelectElement { connectedCallback() { this.attachShadow({ mode: "open" }); this.shadowRoot.innerHTML = ` test `; } }, { extends: "select" } ); }; export default customSelect;,javascript,shadow-dom,custom-element,Javascript,Shadow Dom,Custom Element,它返回了以下错误:custom select.js:6 Uncaught DomeException:未能对“元素”执行“attachShadow”:此元素不支持attachShadow 好的,这是可以预测的 因为我不能使用shadowdom,所以我的问题是从那里得到的最佳解决方案是什么 到目前为止,我可以想象: 直接使用此组件的innerHTML 创建与shadow dom一起工作的全新元素 覆盖现有阴影?(如果可能存在这种方法) 那么,你认为最简单和“SEO友好”的解决方案是什么 注意:
到目前为止,我可以想象:
- 直接使用此组件的innerHTML
- 创建与shadow dom一起工作的全新元素
- 覆盖现有阴影?(如果可能存在这种方法)
注意:解决方案必须基于自定义元素 直接使用此组件的innerHTML 这是“最简单和‘SEO友好’的解决方案”
创建与shadow dom一起工作的全新元素 可能是最用户友好的,因为您可以定义一个增强的UI
覆盖现有阴影 不可能。它是只读的
直接使用此组件的innerHTML 这是“最简单和‘SEO友好’的解决方案”
创建与shadow dom一起工作的全新元素 可能是最用户友好的,因为您可以定义一个增强的UI
覆盖现有阴影 不可能。它是只读的