2012-04-25 18 views
39

Come chiedere conferma all'utente prima che lasci la pagina come in gmail?Conferma prima della chiusura della scheda/browser

Ho cercato per questo problema in vari luoghi, ma tutto ciò che fanno menzione è l'uso di javascript window.unload & window.onbeforeunload. Inoltre non funziona in Chrome la maggior parte delle volte in quanto viene bloccato.

+1

e che cosa hai provato? cosa fallisce? – Joseph

+0

Ho provato window.unload e window.onbeforeunload ma non hanno funzionato come richiesto. –

+0

possibile duplicato di [Conferma casella prima di chiudere una scheda] (http://stackoverflow.com/questions/2452963/confirm-box-before-closing-a-tab) –

risposta

74

Prova questo:

<script> 
window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
     e.returnValue = 'Sure?'; 
    } 

    // For Safari 
    return 'Sure?'; 
}; 
</script> 

Ecco un lavoro jsFiddle

+1

anche questo non sarà disabilitato da nessun browser poiché proviene dall'utente click – gopi1410

+0

Grazie mille! questo è quello di cui avevo bisogno. btw, adoro la demo dei fiddle, esattamente quello che volevo. –

+0

Ciao ... il tuo codice funziona ma non è possibile distinguere se l'utente ha fatto clic sul pulsante di chiusura del browser o ha fatto clic sul pulsante di navigazione per passare ad un'altra pagina. – user3217843

6

Prova questa:

<script> 
    window.onbeforeunload = function(e) { 
     return 'Dialog text here.'; 
    }; 
</script> 

maggiori informazioni qui MDN.

1

Ho letto i commenti sulla risposta impostata come Ok. La maggior parte degli utenti chiede che il pulsante e alcuni collegamenti clic siano consentiti. Qui un'altra riga viene aggiunta al codice esistente che funzionerà.

<script type="text/javascript"> 
    var hook = true; 
    window.onbeforeunload = function() { 
    if (hook) { 

     return "Did you save your stuff?" 
    } 
    } 
    function unhook() { 
    hook=false; 
    } 

chiamata Sganciare() onClick per il tasto e collegamenti che si desidera consentire. Per esempio.

<a href="#" onClick="unhook()">This link will allow navigation</a> 
Problemi correlati