У меня есть расширение, которому нужно загрузить страницу с большим количеством переадресаций на фоновой странице. Как только эта страница перейдет на известный URL-адрес (https://website.com/index.php), iframe должен иметь свой src
установить на about:blank
.
Конечная страница довольно большая и содержит большие изображения и все, что не нужно загружать, поэтому вместо того, чтобы привязываться к событию onload
iframe, я установил следующую функцию с интервалом 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-адресом https://website.com/index.php из фрейма с URL-расширением chrome:/ /hdmnoclbamhajcoblymcnloeoedkhfon/background.html. Кадр, запрашивающий доступ, имеет протокол «chrome-extension», кадр, к которому осуществляется доступ, имеет протокол «https». Протоколы должны совпадать.
Я попытался поймать () эту ошибку, но сообщение, переданное обратно в Javascript, неудивительно, не включает URL-адрес. Страница перенаправляется несколько раз, поэтому важно знать точный URL. Свойство src
iframe также не обновляется для отражения перенаправлений.