【发布时间】:2018-04-14 04:09:15
【问题描述】:
我有一个 v0/Polymer 1 Web 组件,我正在升级到 v1/Polymer 2。这个 Web 组件动态构建一个加载外部 JavaScript 文件的 URI。外部 JavaScript 文件运行并将<iframe> 加载到我的组件的<div> 中。此外部 JS 包含 document.getElementById 以将 <iframe> 加载到指定的 <div> 中。
我已搜索并没有找到强制<div> 元素暴露/放置在shady DOM 中的方法。我已经读过,如果我设计没有 shadow DOM 的组件,则不会显示任何内容。
无论如何我可以使用外部脚本(第三方)将其更新为 Web 组件 v1/Polymer 2,但仍使用 document.getElementbyId 修改 Web 组件内的 <div>?
更新
我发现我可以使用<script>window.ShadyDOM = { force: true };</script> 或<script src="/bower_components/webcomponentsjs/webcomponents-lite.js" shadydom></script> 强制webcomponents 使用shadow dom,但是我仍然无法通过ID 访问元素,我不想强制所有其他webcomponents 使用shady DOM。仍在寻找可能性。
【问题讨论】:
标签: web-component shadow-dom polymer-2.x shady-dom