Ho un'estensione che deve caricare una pagina con molti reindirizzamenti nella sua pagina di sfondo. Una volta che la pagina raggiunge un URL noto (https://website.com/index.php), l'iframe deve avere il proprio src
impostato su about:blank
.Accesso all'URL iframe dall'estensione Chrome
La pagina finale è abbastanza grande e ha le immagini grandi e tutto ciò che non hanno bisogno di essere caricati, quindi piuttosto che si attaccano alla manifestazione del iframe onload
, ho impostato la seguente funzione in un intervallo di 100 ms:
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";
}
}
Tuttavia, non appena l'iframe inizia a caricare, update() throws questo errore:
Unsafe JavaScript attempt to access frame with URL https://website.com/index.php from frame with URL chrome-extension://hdmnoclbamhajcoblymcnloeoedkhfon/background.html. The frame requesting access has a protocol of 'chrome-extension', the frame being accessed has a protocol of 'https'. Protocols must match.
ho provato catch() ing tale errore, ma il messaggio passato di nuovo al Javascript sorprende non include l'URL . La pagina reindirizza più volte, quindi è importante conoscere l'URL esatto. Anche la proprietà src
dell'iframe non viene aggiornata per riflettere i reindirizzamenti.