You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否创建可扩展任意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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:22:03