Я пытаюсь понять, как работают веб-компоненты, и не могу полностью понять правила, касающиеся резервного содержимого в слотах:
У меня есть такой веб-компонент:
const template = document.createElement('template');
template.innerHTML = `
<slot name="content">
<span>fallback</span>
</slot>
<slot>
<span>fallback on an anonymus slot</span>
</slot>
<section>...and more content form shadow DOM</section>
`;
class SomeComponent extends HTMLElement{
constructor() {
super();
const shadowRoot = this.attachShadow({mode: 'open'});
shadowRoot.appendChild(template.content.cloneNode(true));
}
}
window.customElements.define('some-component', SomeComponent);
и если я помещу этот компонент на страницу вроде
<some-component>
<span slot="content">named slot content</span>
</some-component>
Я никогда не вижу "запасного" контента для безымянного слота:
но он присутствует в теневом DOM:
Я не использую никаких поллифиллов и полагаюсь на текущую поддержку веб-компонентов Chrome.