バックグラウンドページに多くのリダイレクトがあるページをロードする必要がある拡張機能があります。そのページが既知のURL(https://website.com/index.php)に到達すると、iframeのsrc
設定はになりabout:blank
ます。
最終ページは非常に大きく、大きな画像とロードする必要のないすべてのものが含まれているため、iframeのonload
イベントにアタッチするのではなく、100ミリ秒間隔で次の関数を設定します。
function update(){
if(document.getElementsByTagName('iframe')[0].contentDocument.location.href == "https://website.com/index.php"){
console.log("Done!");
clearInterval(updateInterval);
document.getElementsByTagName('iframe')[0].src = "about:blank";
}
}
ただし、iframeの読み込みが開始されるとすぐに、update()は次のエラーをスローします。
安全でないJavaScriptは、URL chrome-extension://hdmnoclbamhajcoblymcnloeoedkhfon/background.htmlのフレームからURLhttps://website.com/index.phpのフレームにアクセスしようとします 。アクセスを要求するフレームのプロトコルは「chrome-extension」で、アクセスされるフレームのプロトコルは「https」です。プロトコルは一致する必要があります。
そのエラーをcatch()しようとしましたが、当然のことながらJavascriptに返されるメッセージにURLが含まれていません。ページは複数回リダイレクトされるため、正確なURLを知ることが重要です。iframeのsrc
プロパティも、リダイレクトを反映するように更新されません。