Chrome扩展程序:如何将内容脚本注入iframe的页面

时间:2018-03-31 03:00:25

标签: google-chrome-extension content-script

我正在开发一个Chrome扩展程序,其中包含一个页面,其中包含多个动态创建的iframe,指向多个不同的域。我需要将内容脚本加载到每个iframe中,理想情况下不要将其加载到每个页面中。

有一个单独的内容脚本在所有这些iframe页面上运行,它们可以检测到它位于适用的iframe中,我希望它能加载其他内容脚本。在some wrangling之后,它可以获取该iframe的frameId,但chrome.tabs.executeScript()只接受tabId,而不是frameId,因此脚本会加载到顶级页面,而不是所需的iframe。

请注意,我要注入的脚本需要作为内容脚本运行,并且可以访问可用的Chrome API。

有可能这样做吗?怎么样?

更新: Ach,你当然是对的wOxxOm,“frameId可以在executeScript的第二个参数中指定”。再次感谢你,做出答案,我会接受它。显然,我需要更仔细地阅读。我是一名长期的程序员,但对Chrome扩展程序不熟悉,还有很多需要吸收的东西。

次要问题:似乎我需要添加<all_urls>http://*/*https://*/*,允许清单获得此权限。执行此操作的主要content_script具有相似的匹配模式,我也可以在此处添加此辅助脚本,但实际上只需要在这些iframe中显示的页面,所以这对我来说似乎更好。这样做还有其他缺点吗,还是有一些更好的方法,除了xhr / eval?

0 个答案:

没有答案