Как создать собственный элемент без AttachShadow?Html

Программисты Html
Ответить
Anonymous
 Как создать собственный элемент без AttachShadow?

Сообщение Anonymous »

Предположим, у меня есть такой код:

Код: Выделить всё

class MyElem extends HTMLElement {
constructor() {
super();

let templateContent = document.getElementById('template-elem').content;
this.innerHTML = templateContent.cloneNode(true);
}
}

window.customElements.define('my-elem', MyElem);


Почему это не работает? В инспекторе Chrome пользовательский элемент не содержит HTML. Я также пробовал:

Код: Выделить всё

this.append(templateContent.cloneNode(true));
но это также привело к появлению пустого дерева HTML.
Во всех руководствах упоминается использование теневого DOM, например:

Код: Выделить всё

this.attachShadow({mode: 'open'}).appendChild(templateContent.cloneNode(true));
и хотя это работает, вам приходится использовать Shadow DOM для вашего пользовательского элемента. Нет ли способа просто добавить HTML-код шаблона к вашему пользовательскому элементу без необходимости использования Shadow DOM? В моем небольшом варианте использования я бы предпочел просто использовать глобальные стили CSS.

Подробнее здесь: https://stackoverflow.com/questions/650 ... tachshadow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»