- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注影子 DOM 上的本教程:
http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/
由于某种原因,当我在元素上调用 createShadowRoot 函数时,该元素变得不可见。
这是我的代码:
<div id="nameTag">Bob</div>
<template id="nameTagTemplate">
<style>
.outer {
border: 2px solid brown;
}
</style>
<div class="outer">
<div class="boilerplate">
Hi! My name is
</div>
<div class="name">
Bob
</div>
</div>
</template>
<script>
var shadow = document.querySelector('#nameTag').createShadowRoot();
// var template = document.querySelector('#nameTagTemplate');
// shadow.appendChild(template.content.cloneNode());
</script>
当我不调用此方法时,代码可以正常工作。
有什么想法让它变得不可见吗?
谢谢:)
最佳答案
影子 DOM 的主要目标是将内容与表示分离。阅读:The content is in the document; the presentation is in the Shadow DOM
在 Shadow DOM 中 <content>
充当内容的插入点(在本例中,元素中的文本“Bob”)我们要显示。如果没有这个,内容虽然已经在文档中可用,但无法呈现。
所以,您需要将代码修改为这样 -
<template id="nameTagTemplate">
<style></style>
<div class="outer">
<div class="boilerplate">
Hi! My name is
</div>
<div class="name">
<content></content>
</div>
</div>
</template>
并且,尝试使用
var shadow = document.querySelector('#nameTag').createShadowRoot();
var template = document.querySelector('#nameTagTemplate');
//shadow.appendChild( template.content.cloneNode() ); // does not work
shadow.appendChild( template.content.cloneNode(true) );
// or
shadow.appendChild( template.content );
关于javascript - createShadowRoot 使元素不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25475533/
我正在关注影子 DOM 上的本教程: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom/ 由于某种原因,当我在元素上调用 c
我正在使用这段代码: function setShadowDOM(i, css){ [].forEach.call(document.getElementsByTagName(i), func
mozilla 开发人员文档说 createShadowRoot 已弃用,取而代之的是 attachShadow here虽然附加影子的链接转到 404。W3C 草案还指出正确的方法是 attachS
我在 mozilla 文档中阅读,Element.createShadowRoot()已弃用: This method has been deprecated in favor of attachSh
我正在测试 Anuglar Elements 以创建一些 Web 组件并且运行良好。无论如何,我在控制台中收到此警告: [Deprecation] Element.createShadowRoot i
我遇到了影子 dom 的问题。我找到了一个关于 shadow dom 的教程,它似乎有点陈旧,而且它使用的是 createshadowroot。我被告知 createshadowroot 已被弃用,应
我有一个在 Chrome 和 Firefox 中运行良好的 angular2 应用程序,但在 Safari 中我收到此错误: TypeError el.createShadowRoot is not
popup.js:6 [Deprecation] Element.createShadowRoot is deprecated and will be removed in M73, around M
我是一名优秀的程序员,十分优秀!