w3schools Javascript-Conferma quando si esce dalla pagina




popup jquery w3schools (2)

Sto cercando di implementare una finestra popup di base che chiede all'utente se vuole davvero lasciare una pagina, simile a quello che succederebbe su questo sito se provassi a chiudere la finestra a metà attraverso la scrittura di questo messaggio.

Mi rendo conto che questo è qualcosa di generalmente disapprovato, ma ho buone ragioni per volerlo fare.

Ho funzionato usando il seguente codice:

function confirm_exit(e) {
        if(!e) e = window.event;

        e.cancelBubble = true;
        e.returnValue = 'Are you sure you want to leave?'; 

        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }

Tuttavia, quello che mi piacerebbe davvero fare è visualizzare il messaggio ogni volta che escono dalla pagina, A MENO CHE se ne vadano cliccando su uno dei due link.

(Ho appena capito che sembra che potrei voler costringerli a fare clic su un annuncio o qualcosa del genere!)

Il motivo dell'utilizzo di questo è alla fine di un processo di prenotazione, in cui gli utenti possono confermare la prenotazione o aggiungere ulteriori prenotazioni prima di effettuare la conferma. (Queste sarebbero le due possibilità che NON mi piacerebbe che il messaggio popup fosse visualizzato, il messaggio nel pop-up diceva semplicemente qualcosa come "La tua prenotazione non è ancora confermata, sei sicuro di voler andare via?).

C'è comunque per raggiungere questo obiettivo?

Qualche consiglio apprezzato.

Grazie.


La funzione window .unload ci aiuterà a eseguire alcuni javascript durante la chiusura del browser o il reindirizzamento verso qualsiasi altra pagina. risorse: http://api.jquery.com/unload/


Alla testa:

<head>
...
<script type="text/javascript">
var disabledConfirm_exit=false;
</script>
</head>

Nei due collegamenti autorizzati a partire, è possibile aggiungere

onclick="disabledConfirm_exit=true;"

E all'interno di confirm_exit

function confirm_exit(e) {
    if(disabledConfirm_exit) return;
    if(!e) e = window.event;

    e.cancelBubble = true;
    e.returnValue = 'Are you sure you want to leave?'; 

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}




popup