1
我試圖使用沒有任何抽象它的框架的影子DOM,主要是爲了瞭解它的錯綜複雜。我正在使用webcomponents.js填充,因此它可以跨瀏覽器工作。在陰影中使用<content>標記DOM
我已經設法創建了一個自定義元素,並設置了它的影子DOM,但由於某種原因<content></content>
標籤沒有包含預期的內容。
我希望這個例子來呈現爲
Shadow DOM
Hello world
More Shadow
但它呈現爲
Shadow DOM
More Shadow
缺少什麼我在這裏?
<script src="webcomponents-lite.min.js"></script>
<test-component>
<div>Hello world</div>
</test-component>
<template id="test-component">
<div>Shadow DOM</div>
<content></content>
<div>More shadow</div>
</template>
<script>
class TestComponent extends HTMLElement {
constructor() {
super();
var shadow = super.attachShadow({ mode: 'open' });
var template = document.getElementById('test-component');
var clone = document.importNode(template.content, true);
shadow.appendChild(clone);
}
}
customElements.define('test-component', TestComponent);
</script>
(這個例子是完整的,可運行作爲一個完整的HTML文件,只要你有webcomponents-lite.min.js可用,或可在不.js文件在支持的瀏覽器中運行)
的'content'元件已被替換爲'slot'元件。 – Alohci
有關使用「slot」元素和「slot」屬性的示例,請參閱https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/slot#Use_ _in_ _to_make_a_doc_fragment_with_named_slots –
sideshowbarker