Vorrei simulare l'effetto di window.location.reload()
, ma solo per il "mondo isolato" in cui è in esecuzione lo script di contenuto. Cioè, rimuovere tutto il JS esistente, in particolare i callback e l'evento binding. C'è un bel modo per farlo?Ricarica di un ambiente di esecuzione script di contenuto estensioni di Chrome
Nota: chrome.runtime.reload()
non funziona per questo; ha l'effetto di ricaricare l'estensione e lo script di sfondo, ma non ricarica gli script di contenuto esistenti finché l'utente non si aggiorna.
Il problema è che questo lascia il contesto esistente intatta. Se avvii un setInterval in un executeScript, verrà comunque eseguito dopo il prossimo executeScript. –
Quando il secondo script di contenuto viene eseguito una seconda volta, si ha accesso alle variabili precedenti, quindi è possibile ripristinare tutto. –
@Metoule Non è possibile accedere alle variabili precedenti quando si esegue l'iniezione dopo aver ricaricato l'estensione da 'chrome: // extension'. Hai provato questo? – vaughan