2013-07-22 11 views
7

Sto tentando di avvisare qualcosa dopo la chiusura della pagina.window.unload() non funziona in jQuery

Un semplice window.unload esempio come segue:

HTML

<html> 
<body> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 
    <script src="test.js" type="text/javascript"> 
</html> 

test.js

$(window).unload(function() { 
    alert("Bye now!"); 
}); 

P.S:

Ho provato anche javascript, ma non avverto nulla!

test.js

window.onunload = function() { 
    alert("Bye now!"); 
}; 
+0

possibile duplicazione di [javascript per verificare quando la finestra del browser è chiusa] (http://stackoverflow.com/questions/805463/javascript-to-check-when-the-browser-window-is-close) – Quentin

+2

.onbeforeunload'? – tymeJV

risposta

22

maggior parte dei browser impediscono alert in unload. Il meglio che puoi fare è di utilizzare un onbeforeunload gestore che restituisce una stringa - il browser mostrerà la stringa per l'utente:

window.onbeforeunload = function() { 
    return "Bye now!"; 
}; 

Demo here.

+0

Grazie. 'onbeforeunload' funziona come un incantesimo.Ma solo su FireFox !!! non funziona su Chrome !!! –

+1

@HamedKamrava: stai restituendo la stringa, anziché chiamare 'alert'? Vedi la mia risposta aggiornata e la demo collegata. – RichieHindle

+0

Funziona come un fascino :). tnx –

0

Usa body o document al posto di finestra.

+0

Anche questo non funziona. – Renan

1

In quale browser stai testando questo codice?

Se si controlla il seguente collegamento da W3School, Opera e Chrome non lo supportano. LINK

E un esempio di lavoro per onbeforeunload è quello di utilizzare jQuery come segue:

$(window).on('beforeunload', function() { 
      // Do stuff 
    }); 

(Stavo per commentare questo ultimo po 'sul post di cui sopra, ma non posso ancora commentare:'()