我试图让Chrome扩展程序与页面无形地交互。为此,我在Chrome扩展程序的后台页面中的iframe中加载该页面。但是,我想要既a)能够阅读那个iframe的内容,又b)与那个iframe的内容进行交互。
目前,我正在加载该背景页面及其关联的javascript文件,并且单独添加了一个内容脚本,该脚本应在iframe加载时加载。具体做法是:
内容的脚本:
$(document).ready(function() {
console.log(document);
chrome.runtime.sendMessage({
data: document
});
});
background.js:
chrome.runtime.onMessage.addListener(function(message) {
console.log(message.data);
});
background.html:
<script src=bower_components/jquery/dist/jquery.js></script>
<script src=background.js></script>
<iframe src="https://messenger.com" id="iframe"/>
控制台中的预期行为是显示文档的console.log(来自内容脚本行2),然后是显示文档的控制台日志(从内容脚本传递到background.js)。但是,第二个console.log会打印一个空对象。任何想法为什么会这样和/或如何解决这个问题?