gpt4 book ai didi

javascript - 在 chrome 中打开其他扩展插入的元素的 "closed"shadowRoot

转载 作者:行者123 更新时间:2023-12-05 01:54:51 30 4
gpt4 key购买 nike

Chrome 中的谷歌翻译扩展,具有弹出功能,它会立即显示所选单词的翻译,我想访问弹出显示的那些翻译,但是这个弹出元素是 shadowRoot("closed"),所以 javascript 无法访问它的内容,我写了一篇关于该主题的文章,作者说:

But really there is nothing stopping someone executing the following JavaScript before your component definition.Element.prototype._attachShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function () { return this._attachShadow( { mode: "open" } ); };

是否可以更改其他扩展的 attachShadow 方法?如果是这样,我的分机应该在哪里执行? background_script 或者某个地方。我认为每个扩展都有自己的环境,我没有机会编辑它们的方法。但愿我是错的:)

最佳答案

无需覆盖它。
内容脚本中有一个特殊的方法。

  • Chrome 88+ :

    let shadowRoot = chrome.dom.openOrClosedShadowRoot(element);
  • Firefox 63 :

    let shadowRoot = element.openOrClosedShadowRoot();
  • 合并:

    let shadowRoot = chrome.dom?.openOrClosedShadowRoot(element)
    || element.openOrClosedShadowRoot();

关于javascript - 在 chrome 中打开其他扩展插入的元素的 "closed"shadowRoot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70489914/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com