私の拡張機能には、現在のWebページ(www.google.comなど)<div>
の内部を含むコンテンツスクリプトがあります。<iframe>
ページをiframeにロードしますが、コンテンツは動的である必要があるため、最初にを使用して大量のHTMLをバックグラウンドページに投稿します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);
残念ながら、これには2つの問題があります。まず第一に、DOMContentLoaded
イベントは決して発生しません(なぜですか?)。iframe.contentDocument
次に、 iframeが別のドメインから読み込まれているため、おそらくアクセスできません。
iframeを使用sendRequest
して、ホスティングページが入手できる場所にサイズを投稿することができます。ただし、同じコードを使用してiframeをポップアップウィンドウにも挿入しているため、リクエストを送信する簡単な方法はありません(chrome.tabs.sendRequest
コンテンツスクリプトchrome.extension.sendRequest
ではなくポップアップウィンドウで使用されるため)。
これを行う方法についてのアイデアはありますか?