javascript - element.parentNode 为 Web 组件提供了与页面和 Chrome 扩展上下文不同的结果

标签 javascript google-chrome-extension web-component

我有以下问题: 我从我正在开发的网页和 Chrome 扩展的上下文中获取相同的元素。 当我打电话时

element.parentNode

从页面上下文(开发工具中的“顶部”)我正在接收#document-fragment。当我从扩展上下文(扩展的内容脚本)中执行相同的操作时,我会引用一些 Web 组件“force-record-layout-item”(此元素是在文档片段之前获取的主机)。 在图片上,蓝色 - 元素,黄色 - 来自 chrome 扩展上下文的父元素。 enter image description here 出现这样的情况到底是什么原因呢?如何为两个上下文获取相同的父级? (我也发生了类似的情况,在 chrome 扩展的上下文中,相对于页面上下文中同一元素的父节点,父节点位于影子根内部,并且无法弄清楚为什么)

最佳答案

两者都应该使用相同的 DOM,我认为你试图在不同的时间访问元素(在获取完成之前或之后)才是造成差异的原因。 尝试延迟几秒钟运行内容脚本中的代码来测试这一点。如果确实如此,那么您可以尝试使用突变观察器在该元素发生更改时执行代码。您还可以在 list 中使用内容脚本的 run_at 属性。

关于javascript - element.parentNode 为 Web 组件提供了与页面和 Chrome 扩展上下文不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60259989/

相关文章:

javascript - 动态创建上传图片框并预览

javascript - Chrome 扩展 : How to make background wait executescript?

javascript - 如何将数组上的更改反射(reflect)到 lit-element 中渲染的 html 中?

javascript - 访问用纸张输入选择的文件

javascript - 使用指令会以 Angular 破坏 ng-view,如何?

javascript - 删除所有不在单引号或双引号之间的调试器

javascript - 空白选择选项#ngValue

css - 如何不继承 chrome 扩展内容脚本中的样式

google-chrome-extension - 更新/调整已安装的 Google Chrome 扩展程序以访问本地文件

javascript - 在没有 disconnectedCallback 的情况下将元素从 light DOM 移动到 ShadowDOM