首页 文章

“观察外部阴影DOM的原因是什么,不应该看到阴影中的突变”

提问于
浏览
1

我试图在以下文档中观察文档级别的自定义输入元素的文本输入元素的输入值的更改:

<body>
  <custom-div>
  </custom-div>
</body>

Custom Div和Custom Input定义如下:

<!-- custom-div -->
<template>
    <custom-input>
    </custom-input>
</template>

<!-- custom-input-->
<template>
  <input type="text">
  <span>Units</span>
</template>

由于状态here遗留"change"事件未从影子根泄露出来,并且Chromium的影子根状态上的变异观察者test "observing from outside shadow DOM should not see mutations in the shadow."

因此,事件冒泡的遗留更改事件和子树属性更改配置的变异观察器都不适用于此 . 我很好奇第二部分测试用例的原因是什么?

此外,实现上述场景的唯一方法是在每个级别的自定义元素上设置观察者,这些元素在其直接子元素中的值更改时设置/更新其属性?

1 回答

  • 1

    Shadow DOM 实现 encapsulation .

    它___959882_的内部行为(在Shadow树内)来自文档树外 .

    所以这似乎是一种正常的预期行为 .

    注意:如果您需要以简单的方式捕获树更改,则可以始终在没有Shadow DOM的自定义元素中使用 <template> .

    你想达到什么目的?在您的示例中,对Shadow DOM的需求并不明显 .

    你可以阅读:

相关问题