Chrome扩展程序:在background.html中访问跨域iframe

Gee*_*Lad 5 javascript iframe google-chrome google-chrome-extension

由于页面的复杂性,我正在尝试编写一个扩展,该扩展刮取需要作为网页加载的网站(XHR并不是真正的选择)。我想出的最好的解决方案是通过放置在background.html中的iframe进行抓取。当满足目标页面上的某些条件时,该扩展将向用户提供通知。

几年前在这里发布了一个非常类似的问题:

Chrome扩展程序:加载隐藏的页面(不带iframe)

我可以通过删除x-frame-options标头在后台页面中将iframe与目标页面一起加载,如对上述问题的回答所示。当页面加载到浏览器选项卡/窗口中时,我可以通过内容脚本抓取数据。但是,我希望能够从后台脚本执行此操作,并且由于跨域安全性的原因,它当然不能直接访问iframe contentDocument。

不幸的是,尽管iframe很好地从目标页面加载了内容,但它没有加载内容脚本。似乎background.html根本没有加载任何内容脚本。这是有道理的,因为当扩展开始加载彼此的内容脚本时,事情可能会变得疯狂。

是否有清单选项允许特定的内容脚本在后台页面的iframe中运行?

如果不是,是否有任何方法可以放松扩展中访问iframe contentDocument的跨域安全性?

请注意,不能使用--disable-web-security chrome命令行开关。我希望非技术人员能够使用该扩展程序,并且我不想要求用户禁用网络安全性才能使用该扩展程序。

如果无法在后台页面中运行内容脚本或放松安全性,还有什么其他可能性可以在不使用XHR的情况下抓取带有chrome扩展名的页面DOM?当然一定有办法。