Web 2.0 Developer & PHP Programmer (ZCE)
September 2, 2008

Intercettare la chiusura del browser

Avete la necessità di dover intercettare quella fase precedente alla chiusura del brower o del tab contenuto in esso? Eccovi qui la soluzione:
function beforeUnload() {
	return "Sei sicuro di voler chiudere la finestra?";
}
window.onbeforeunload = beforeUnload;
Ovviamente questo esempio vi mostrerà soltanto un alert che vi chiederà se chiudere la finestra o tornare alla pagina. Gli utilizzi sono molteplici, potete intercettare quale evento ha generato la chiusura della pagina (il click su un link, la chiusura da parte dell'utente del tab o della finestra, il refresh della pagina, ecc) poi in base alla circostanza la si può gestire in modo diverso.

Bookmarks: bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

6 commenti

Anderoli
  • Ciao, il tuo script mi è stato proprio utile. Non è possibile eliminare le scritte "Uscire da questa pagina?" e "Premere OK per continuare o Annulla per rimanere nella pagina corrente." vero? Grazie comunque

    January 24, 2009 @ 20:00
  • Fabio Cicerchia
  • Purtroppo no :(

    January 26, 2009 @ 13:27
  • luca
  • ciao...ho letto il thread. vi volevo chiedere: è possibile eseguire una funzione non scritta in Javascript? Io sto lavorando su asp.net e alla chiusura della pagina vorrei che eseguisse una funzione in vb. Grazie cmq

    July 28, 2009 @ 14:36
  • Alessio
  • ciao, mi permetto un commento a questo topic che mi sta molto a cuore... innanzitutto la funzione beforeunload dovrebbe contenere questo codice return confirm('Sei sicuro di voler chiudere la finestra?'); e non return "stringa..." inlotre la stessa funzione va richiamata con le parentesi doppie finali, altrimenti JS la interpreta come dato/oggetto e non come metodo ;-) Purtroppo però è impossibile trovare uno script preconfezionato che faccia quello che fa Gmail: ossia, intercettare la chiusura (X) del browser, e mostrare un REALE messaggio di conferma (customizzato dallo sviluppatore) che consente a tutti gli effetti di bloccare in toto la chiusura di Firefox (o IE, o Opera...). Se trovassimo qualcosa del genere non sarebbe fighissimo? Ciaooo Alessio

    December 12, 2008 @ 19:20
  • Fabio Cicerchia
  • Mi permetto un commento anch'io :) Allora se utilizzi la confirm ti da un box di conferma con il testo che specifichi, però se clicchi o su 'annulla' o su 'ok' ti da un'altro box di conferma (cosa fastidiosa dover cliccare 2 volte per decidere cosa fare). Per questo la scelta di non utilizzarlo. Altro piccolo appunto se tu nell'assegnazione del beforeUnload lo assegni con le parentesi non viene assegnato ma soltanto eseguito, per questo ogni metodo va passato nell'operazione di assegnazione senza parentesi tonde (poi se ci sono dei parametri di mezzo bisogna trovare un workaround...ma questo è tutt'altro argomento). Ciao ;)

    December 13, 2008 @ 11:30
  • Anderoli
  • Capisco, grazie comunque

    January 31, 2009 @ 08:49
  • © Copyright 2008 - 2010 Fabio Cicerchia. Powered by Fluxy Framework using the theme bbv1 (customized by Fabio Cicerchia).