Я работаю с текущим шаблоном стартового комплекта PWA от Polymer.
https://github.com/Polymer/pwa-starter-kit/tree/template-typescript
Моя страница элемента веб-компонента возвращает следующий код с элементом DIV:
return html`
${SharedStyles}
<section>
...my content...
</section>
<div id="CONTAINER NAME"></div>
`
Мне нужно получить доступ к элементу ИМЯ КОНТЕЙНЕРА из внешнего javascript через document.getElementById. Я знаю, что он сидит в тени, но я не могу изменить внешний JS. Так что вопрос в том, как сделать его доступным из JS через document.getElementById?
Внешний JavaScript загружает iframe
в именованный div
. Этот внешний компонент должен получить элемент div на document.getElementById
, чтобы загрузить iframe в указанный div.
Я искал и не нашел способа заставить элемент div из теневого домена моей страницы веб-компонента быть выставленным / помещенным в DOM.
Я только что нашел это решение, упомянутое здесь, но я не заставил его работать в шаблоне PWA. Может быть, так как теневые домы каскадируются в шаблоне PWA?
https://stackoverflow.com/a/47082470/9192527
Можно ли каким-либо образом обновить веб-компонент на основе набора Polymer v3 / PWA с помощью внешнего javascript (стороннего производителя), все еще использующего document.getElementbyId для изменения моего div внутри веб-компонента?
Итак, ищите возможность, используя, возможно, slots
, чтобы выставить элемент теневого дома на светлый дом? Но я не могу заставить его работать с решениями, указанными выше.