能否创建可扩展任意HTML元素的Web Component?
问题:通用自定义元素类的实现困境
我想创建一个自定义元素类,只要元素带有is="foo-element"属性,就能把这个类应用到几乎所有类型的HTML元素上,但感觉这个需求没法直接实现。
我目前能想到的最接近的方案是下面这段代码:
const allTags = ["ul", "div" /* etc... */] for (const tag of allTags) { const baseCalss = document.createElement(tag).constructor const customElement = class extends baseCalss { constructor() { super() } } customElements.define("custom-element-"+tag, customElement, { extends: tag }) }
对应的HTML使用方式:
<ul is="custom-element-ul"> </ul> <div is="custom-element-div"> </div>
内容的提问来源于stack exchange,提问作者Chris_F
相关产品推荐
相关产品推荐

