【发布时间】:2021-10-15 06:41:30
【问题描述】:
调用this.childNodes 而不是自定义元素的connectedCallback 将返回不同的值,具体取决于是否在脚本标记中设置了type="module"。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script>
class CustomElement extends HTMLElement {
connectedCallback() {
console.log(this.childNodes);
}
}
customElements.define('custom-element', CustomElement);
</script>
</head>
<custom-element><div></div></custom-element>
</html>
在我的浏览器中,记录了以下内容,表示有0个子节点:
NodeList []
但如果我在脚本标签中设置type="module",则会记录1个子节点:
NodeList [ div ]
我能够在 Firefox 90 和 Chrome 92 上复制此行为。
为什么设置type="module"会改变childNodes的返回值?
【问题讨论】:
标签: javascript html web-component es6-modules custom-element