Объяснение
Я создал три пользовательских HTML-элемента и два шаблона с помощью JS (см. ниже).
Код: Выделить всё
const baseTemplate = document.createElement("template");
baseTemplate.innerHTML = `
Warning: left-pane not included
Warning: right-pane not included
`;
const paneTemplate = document.createElement("template");
paneTemplate.innerHTML = `Warning: no content included`;
class PageBase extends HTMLElement {
constructor() {
super();
const shadow = this.attachShadow({ mode: "closed" });
let clone = baseTemplate.content.cloneNode(true);
shadow.append(clone);
}
}
class LeftPane extends HTMLElement {
constructor() {
super();
const shadow = this.attachShadow({ mode: "closed" });
let clone = paneTemplate.cloneNode(true);
shadow.append(clone);
}
}
class RightPane extends HTMLElement {
constructor() {
super();
const shadow = this.attachShadow({ mode: "closed" });
let clone = paneTemplate.cloneNode(true);
shadow.append(clone);
}
}
customElements.define("page-base", PageBase);
customElements.define("left-pane", LeftPane);
customElements.define("right-pane", RightPane);
Код: Выделить всё
[...]
Thing 1
Thing 3
Thing 2
Я пробовал использовать каждый пользовательский элемент отдельно, и они отлично работают, помещая внутрь теги заголовка или абзаца, но не для пользовательских элементов. .
Подробнее здесь: https://stackoverflow.com/questions/793 ... ond-hidden