CustomElementRegistry: upgrade() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

upgrade() 方法是 CustomElementRegistry 接口的一部分,它用于升级 Node 子树中所有包含 shadow DOM 的自定义元素,即使它们尚未连接到主文档。

语法

js
upgrade(root)

参数

一个 Node 实例,其中包含待升级的 shadow DOM 后代元素。如果没有可以升级的后代元素,则不会抛出错误。

返回值

无(undefined)。

示例

取自 HTML 规范

js
const el = document.createElement("spider-man");

class SpiderMan extends HTMLElement {}
customElements.define("spider-man", SpiderMan);

console.assert(!(el instanceof SpiderMan)); // not yet upgraded

customElements.upgrade(el);
console.assert(el instanceof SpiderMan); // upgraded!

规范

规范
HTML
# dom-customelementregistry-upgrade-dev

浏览器兼容性