Sto scrivendo un'estensione di google chrome con un popup e una pagina di sfondo. Il popup si iscrive a determinati eventi generati dallo sfondo e desidero annullare l'iscrizione a quegli eventi quando il popup scompare. Tuttavia, non vedo nessuno degli eventi onbeforeunload o onunload generati dal popup. Questi eventi sono stati licenziati? In caso contrario, qualche idea su come acquisire popup si chiude?onbeforeunload trigger per popup.html in un'estensione google chrome?
risposta
Ho avuto una specie di problema simile. Nel mio caso, ho messo a fuoco un elemento che era nella pagina popup. Quindi, quando il popup è chiuso, l'elemento perde la messa a fuoco e riesco a cogliere l'evento sfocato.
Questo trucco non funziona per me - era davvero pieno di speranza - ma non andare. –
"beforeunload" è non attivato per i popup di azione del browser. Credimi, ci ho provato. "scaricare" dovrebbe essere licenziato correttamente, tuttavia, quindi ascoltalo.
In realtà, ho un sistema simile sul posto, che consente di allegare eventi utilizzando addEventListener e che vengono automaticamente eliminati quando si verifica l'evento di scarico.
Ecco un piccolo consiglio: ovviamente non è possibile utilizzare console.log
, perché al momento dell'attivazione dell'evento di scaricamento, è già troppo tardi. Ma, si può fare questo:
var background = chrome.extension.getBackgroundPage();
addEventListener("unload", function (event) {
background.console.log(event.type);
}, true);
Utilizzando il codice di cui sopra, è possibile aprire la console di sfondo della pagina, che dovrebbe mostrare che l'evento di scaricamento viene generato correttamente.
Grazie per il suggerimento della console in background! Abbastanza utile! –
@AlexStack Ho ripristinato la modifica. 'chrome.runtime.getBackgroundPage' non è equivalente - è asincrono. – Xan
Almeno con una pagina di evento e utilizzando 'chrome.runtime.getBackgroundPage()' per effettuare una chiamata alla pagina di sfondo per registrare qualcosa, non vedo questo lavoro per eventi 'download'. – jdunning
Se si è passati a utilizzare event pages anziché le pagine in background nell'estensione, il modo consigliato di accedervi è chiamare chrome.runtime.getBackgroundPage()
con una funzione che viene richiamata con il riferimento della pagina di sfondo.
Tuttavia, se si tenta di ottenere lo sfondo della pagina in un onbeforeunload
gestore, in questo modo:
document.addEventListener("beforeunload", function() {
chrome.runtime.getBackgroundPage(function(backgroundPage) {
backgroundPage.log("unloading");
});
});
La richiamata non sembra sparare prima che la pagina scarica, in modo che log()
chiamata non ha mai fatto.
In un commento sopra, Pauan ha suggerito di utilizzare chrome.extension.getBackgroundPage()
per ottenere la pagina. L'unico modo per farlo funzionare era non creare il gestore con addEventListener()
. Invece ho dovuto andare vecchia scuola e impostare il gestore direttamente sul window
:
window.onbeforeunload = function() {
chrome.extension.getBackgroundPage().log("unloading");
};
che finalmente ottenuto attraverso la pagina di sfondo.
- 1. Come programmazione estensione Chrome aperta popup.html
- 2. Avviso non visualizzato in popup.html dell'estensione chrome
- 3. non onbeforeunload funzionando correttamente per Chrome
- 4. Come utilizzare chrome.alarms per Google Chrome estensione
- 5. Impostazione onbeforeunload sull'elemento body in Chrome e IE utilizzando jQuery
- 6. Chrome onbeforeunload evento quando scheda (o browser) si chiude
- 7. Accesso all'oggetto DOM della scheda corrente da "popup.html"?
- 8. Chiamata sincrona in Google Estensione Google Chrome
- 9. getElementById problema in Google Chrome
- 10. Download binario senza attivazione onbeforeunload
- 11. Trigger o invoca l'estensione di Chrome dal tipo MIME
- 12. Google Chrome è integrabile?
- 13. evento onbeforeunload è troppo entusiasta in IE9
- 14. L'estensione di Google Chrome non mostra il popup
- 15. L'estensione Google Cast per Google Chrome supporta 1080p?
- 16. Estensione Google Chrome per Click Once?
- 17. Google Chrome Forces HTTPS
- 18. bug di Google Chrome?
- 19. Ottimizzazione carattere Google Chrome
- 20. Come si aprono i collegamenti popup.html nella scheda?
- 21. beforeunload O onbeforeunload
- 22. Affidabilità di onbeforeunload
- 23. Routing angolare di Google Chrome Google Numero
- 24. Utilizzare onbeforeunload senza dialog?
- 25. jQuery UI Dialog OnBeforeUnload
- 26. Trigger Google Maps dal browser Android
- 27. Google Web Fonts non viene caricato in Chrome per iOS
- 28. Stampa un'intestazione per ogni pagina in Google Chrome
- 29. Tipo MIME per file zip in Google Chrome
- 30. C'è un modo per ottenere xpath in google chrome?
Ho questa domanda esatta. Hai mai trovato una risposta? –