我正在使用 Polymer 当前的 PWA 入门套件模板。
https://github.com/Polymer/pwa-starter-kit/tree/template-typescript
我的 web 组件元素页面返回以下带有 DIV 元素的代码:
return html`
${SharedStyles}
<section>
...my content...
</section>
<div id="CONTAINER NAME"></div>
`
我需要通过 document.getElementById 从外部 javascript 访问 CONTAINER NAME 元素。我知道它位于 shadow dom 中,但我无法更改外部 JS。所以问题是如何通过 document.getElementById 从 JS 访问它?
外部 JavaScript 将一个加载iframe
到命名的div
. 这个外部组件需要通过document.getElementById
将 iframe 加载到指定的 div 中来获取 div 元素。
我已经搜索并没有找到一种方法来强制将我的 web 组件页面的 shadow dom 中的 div 元素暴露/放置在 DOM 中。
我刚刚发现这里提到的这个解决方案,但我没有让它在 PWA 模板中工作。也许是因为影子 dom 在 PWA 模板中级联?
有什么方法可以更新基于 Polymer v3/PWA 套件的 Web 组件,外部 javascript(第三方)仍然使用 document.getElementbyId 来修改我在 Web 组件中的 div?
所以寻找一种可能性,使用可能slots
将阴影 dom 的元素暴露给 light dom?但不能让它与上面链接的解决方案一起工作。