Chrome扩展程序内容脚本访问扩展程序框架

时间:2016-03-04 05:22:54

标签: javascript html google-chrome google-chrome-extension content-script

我正在寻找一种从内容脚本内部从原始弹出页面发送数据(或直接编辑)DOM / HTML的方法。我的脚本使用以下行启动:

chrome.tabs.executeScript(null, {file: "script.js"});

我正在寻找一种方法来访问原始弹出窗口的HTML,以便我可以编写和更新script.js动态执行的日志。

如果您需要更多信息,我将非常乐意编辑这篇文章。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

扩展上下文和内容脚本上下文之间存在安全性分离。您不能仅从内容脚本中引用弹出窗口的window(与扩展上下文中的getBackgroundPage()getViews()不同,这是一个开头的黑客攻击)。

两者之间进行通信的正确方法是Messaging(您可以通过runtime.sendMessage从内容脚本发送消息,弹出窗口将在接收者之间)。

重要的是要记住弹出窗口可以关闭,然后它的状态将丢失并且它不会正在侦听。在这种情况下,您要么将后台脚本用作两者之间的“代理”,要么使用像chrome.storage这样的持久存储。

最后,Messaging / Storage仅支持JSON可序列化的有效负载。这意味着除了其他方面,您无法发送DOM节点。您只需要传达您的目的所需的最低限度数据,并在弹出端构建DOM。