Поскольку импорт html еще не поддерживается (например, Firefox не планирует этого делать), я попытался имитировать его использование при импорте пользовательских элементов через iframes.
The way I 'мы попытались сделать это, загрузив скрипт в iframe, который определяет пользовательский элемент в верхнем контексте просмотра;и после этого iframe может быть удален из документа.Причина, по которой я пытался это сделать, заключается в том, что я хотел бы динамически определять пользовательские элементы в соответствии с информацией, которую я получаю на стороне клиента;и эти пользовательские элементы используют шаблоны, которые будут использоваться в теневом DOM.
Я предпочитаю использовать шаблоны вместо построения теневого DOM в скрипте, чтобы иметь чистый код;Вот почему я хотел бы имитировать функциональность импорта с помощью iframe со всеми шаблонами, а не просто загружать скрипт, в котором построен теневой DOM.
Однако способ, который я пробовал, не работает (протестировано в google chrome и firefox):
// iframe.js
class XAElement extends HTMLElement{
constructor(){
super()
// Any customization here
}
// Any other methods for functionality
}
top.customElements.define('x-a', XAElement)
Разрешено ли определять пользовательские элементы верхнего контекста просмотра в iframe?
Примечание. Файл iframe.html представляет собой любой HTML-файлкоторый загружает этот скрипт;и файл index.html (в котором происходит ошибка) - это любой файл, который загружает iframe iframe.html.
Примечание 2: Я получаю ошибку afer super()
;однако, если я прокомментирую последнюю строку (в которой я намерен определить пользовательский элемент), ошибки не произойдет.