在我的扩展中,我有一个内容脚本,它创建一个<div>
包含<iframe>
当前网页内部的内容(例如 www.google.com)。我将一个页面加载到 iframe 中,但内容必须是动态的,所以我首先使用sendRequest
. 然后 iframe 页面查询背景页面(再次使用sendRequest
),获取 HTML 并将其添加到页面的正文中。
问题是添加动态内容时 iframe 的大小不正确,因此它有滚动条。我想做这样的事情:
iframe.addEventListener("DOMContentLoaded", function(event) {
div.style.height = iframe.style.height = iframe.contentDocument.body.scrollHeight;
div.style.width = iframe.style.width = iframe.contentDocument.body.scrollWidth;
}, false);
不幸的是,我有两个问题。首先,该DOMContentLoaded
事件永远不会被触发(为什么?)。其次,我大概无法访问,iframe.contentDocument
因为 iframe 是从不同的域加载的。
我可以使用 iframesendRequest
将其大小发布到托管页面可以使用的位置。但是,我也使用相同的代码将 iframe 插入到弹出窗口中,因此没有简单的方法来发送请求(因为它将chrome.tabs.sendRequest
用于内容脚本,但chrome.extension.sendRequest
用于弹出窗口)。
关于如何做到这一点的任何想法?