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 扩展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友好”的解决方案是什么 注意:

它返回了以下错误:custom select.js:6 Uncaught DomeException:未能对“元素”执行“attachShadow”:此元素不支持attachShadow

好的,这是可以预测的

因为我不能使用shadowdom,所以我的问题是从那里得到的最佳解决方案是什么
到目前为止,我可以想象:

  • 直接使用此组件的innerHTML
  • 创建与shadow dom一起工作的全新元素
  • 覆盖现有阴影?(如果可能存在这种方法)
那么,你认为最简单和“SEO友好”的解决方案是什么
注意:解决方案必须基于自定义元素

直接使用此组件的innerHTML

这是“最简单和‘SEO友好’的解决方案”


创建与shadow dom一起工作的全新元素

可能是最用户友好的,因为您可以定义一个增强的UI


覆盖现有阴影

不可能。它是只读的


直接使用此组件的innerHTML

这是“最简单和‘SEO友好’的解决方案”


创建与shadow dom一起工作的全新元素

可能是最用户友好的,因为您可以定义一个增强的UI


覆盖现有阴影

不可能。它是只读的