Rilevamento della chiusura delle finestre del browser su Firefox

Uno degli aspetti frustranti del fare clic sugli oggetti in una pagina Web è fare clic accidentalmente su qualcosa che chiude una finestra del browser prima di eseguire un’attività critica. Firefox consente di aggiungere una breve funzione JavaScript che rileva l’evento di chiusura della finestra e avvisa le persone che tentano di chiudere una finestra che ospita una delle tue pagine Web.

Motivi per rilevare la chiusura di Windows

Se il tuo sito aziendale ha una pagina di registrazione, probabilmente vorrai che le persone completino l’attività di registrazione prima di chiudere la finestra. Potresti anche desiderare che i visitatori del sito leggano i tuoi Termini di servizio prima di lasciare una pagina. Se il tuo sito web ha un forum, potresti anche avvisare i poster del forum quando digitano un messaggio in una casella di testo e provare a chiudere la finestra prima di fare clic su “Pubblica” per pubblicare i loro messaggi. Potresti anche semplicemente voler sapere quando qualcuno esegue un’attività che causa la chiusura della finestra corrente di Firefox.

Eventi di Firefox

Firefox, come altre applicazioni orientate agli oggetti, risponde agli eventi. Fare clic su un pulsante, ad esempio, e un evento onclick potrebbe essere eseguito ed eseguire alcune attività. Se si aggiunge un gestore di eventi onbeforeunload a una pagina Web, viene eseguito quando qualcuno tenta di chiudere la finestra. L’esempio seguente mostra una funzione che viene eseguita quando Firefox rileva un evento onbeforeunload:

window.onbeforeunload = funzione (e) {e = e || window.event; if (e) {e.returnValue = ‘Inserisci qui il messaggio personalizzato’; } return “Inserisci qui il messaggio personalizzato”; };

Questo codice va nella sezione del tuo documento HTML. Quando le persone provano a chiudere la finestra di Firefox che ospita la pagina, viene visualizzata una finestra di avviso popup che offre loro la possibilità di rimanere sulla pagina o chiudere la finestra.

Messaggi di avviso personalizzati

Il metodo onbeforeunload elimina il duro lavoro di visualizzare una finestra pop-up di avviso progettando la finestra per te. Crea il pop-up, lo apre e aggiunge i pulsanti di conferma. La finestra visualizza anche un messaggio standard che avverte le persone dell’imminente evento di chiusura della finestra che si verificherà a seconda della scelta che fanno nella finestra pop-up. Se sostituisci “Inserisci messaggio personalizzato qui” con un tuo messaggio, quel testo apparirà anche nella finestra pop-up sulle versioni di Firefox precedenti alla 4.0. Gli altri utenti di Firefox vedranno solo il messaggio standard che la funzione genera automaticamente.

Logica condizionale

Finché esiste un’istruzione return nella funzione JavaScript, la funzione visualizza il popup di avviso quando qualcuno tenta di lasciare la pagina. Hai la possibilità di far apparire quel pop-up solo quando necessario inserendolo in un blocco decisionale “if-then” ed eseguendolo quando si verifica una condizione specifica, come mostrato nell’esempio seguente:

window.onbeforeunload = funzione (e) {e = e || window.event; if (e) {if (boxIsChecked == true) e.returnValue = ‘Any string’; } if (boxIsChecked == true) restituisce “Qualsiasi stringa”; };

Questo codice esegue l’istruzione return solo se il valore di boxIsChecked è “true”. È possibile utilizzare questo tipo di logica, ad esempio, quando non si desidera che le persone abbandonino la pagina finché non selezionano una particolare casella di controllo.