我正在编写一些诊断工具并尝试为其创建 chrome 扩展。我拥有的是一个带有 iframe 的页面。iframe 包含正在放置的站点diffrent domain
。
我需要的是这两个站点之间的通信。我发现我可以简单地content script
向每个文档添加一个(到 iframe 文档和我的顶部窗口文档),并通过background script
消息流在它们之间设置通信。
问题是我现在不知道 iframe 中文档的地址是什么,用户可以将多个不同的页面放入 iframe。因此,我无法content script
使用manifest.json
文件添加,因为我不知道将什么放入matches
属性中。
我尝试使用chrome.tabs.executeScript
将allFrames
标志设置为 true 的方法。当 iframe 文档与顶部窗口文档位于同一域时,它工作正常,但当它位于不同域时,它不会添加content script
到框架文档中。
问题很奇怪,因为如果我在设计时知道 iframe url,那么我可以像从清单文件中一样添加这些脚本......
在这种情况下,如何将内容脚本添加到 iframe 文档?
我还会告诉你,我有权访问我manifest.json
文件中的每一页。它看起来像这样:"permissions": ["tabs", "http://*/", "https://*/"]
。额外的障碍是我不能嵌入 iframe 文档内容,它是第三方代码。
有任何想法吗?谢谢你的帮助。