javascript - Shadow-root 兄弟元素在 attachShadow() 调用时消失

标签 javascript html polymer shadow-dom

当我调用 host.attachShadow({mode: 'open'})在内部包含一些元素的 div 上,div 的内容似乎消失了。这些元素在开发者工具中仍然可见,但在屏幕上不再可见。

我是否用任何东西填充 shadowRoot 都没关系;一旦附加了阴影,div 的子元素就会消失。

codepen 上的演示:https://codepen.io/anon/pen/VrBdOe

为什么内容消失了?我在网站上看到过它,所以我知道它有可能以某种方式实现。查看 https://www.polymer-project.org/2.0/start/quick-tour 的代码例如,<pw-shell>节点有影子根和几个 sibling 共存。那里发生了什么?

最佳答案

影子 DOM 内容将替换它(影子根)所在主机的原始 DOM 子树。这是 Shadow DOM 的预期行为(因此得名)。

您可以使用 Shadow DOM 中的元素使其出现。

host.attachShadow( { mode: 'open' } )
    .innerHTML = 'Original DOM: <slot></slot>, in the Shadow DOM'
<div id=host>
Lite DOM
</div>

您应该阅读 tutorial about Shadow DOM了解更多详情。

关于javascript - Shadow-root 兄弟元素在 attachShadow() 调用时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500157/

相关文章:

javascript - 无法在 iron-pages 中垂直居中内容

javascript - 为什么我无法读取嵌套函数中全局变量的变化?

javascript - 延迟的ajax请求数组永远不会进入when.apply().done()

Javascript Logo 移动鼠标悬停功能

javascript - 为什么 getElementsByClassName() 访问影子 DOM 中的元素?

dart - 如何在 Polymer.dart 中使用 Material 设计的内置 css 颜色类?

javascript - 如何在 Chrome/Firefox 中导出 ES6 变量?

javascript - HighCharts 导出隐藏滚动条

php - 使用 jQuery 选项卡更改变量

video - HTML5 视频问题