2

我正在编写一些诊断工具并尝试为其创建 chrome 扩展。我拥有的是一个带有 iframe 的页面。iframe 包含正在放置的站点diffrent domain

我需要的是这两个站点之间的通信。我发现我可以简单地content script向每个文档添加一个(到 iframe 文档和我的顶部窗口文档),并通过background script消息流在它们之间设置通信。

问题是我现在不知道 iframe 中文档的地址是什么,用户可以将多个不同的页面放入 iframe。因此,我无法content script使用manifest.json文件添加,因为我不知道将什么放入matches属性中。

我尝试使用chrome.tabs.executeScriptallFrames标志设置为 true 的方法。当 iframe 文档与顶部窗口文档位于同一域时,它工作正常,但当它位于不同域时,它不会添加content script到框架文档中。

问题很奇怪,因为如果我在设计时知道 iframe url,那么我可以像从清单文件中一样添加这些脚本......

在这种情况下,如何将内容脚本添加到 iframe 文档?

我还会告诉你,我有权访问我manifest.json文件中的每一页。它看起来像这样:"permissions": ["tabs", "http://*/", "https://*/"]。额外的障碍是我不能嵌入 iframe 文档内容,它是第三方代码。

有任何想法吗?谢谢你的帮助。

4

1 回答 1

2

发表评论后Rob W,问题在于时机。我试图在加载之前将脚本注入 iframe。我在 iframe 上使用了事件来确定应该调用onload该方法的时刻。executeScript

现在一切正常。谢谢罗布。

于 2012-08-11T14:54:40.460 回答