2013-07-22 13 views
7

Próbuję ostrzec coś po zamknięciu strony.window.unload() nie będzie działać w jQuery

prosty window.unload jak w poniższym przykładzie

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:

Próbowałem też javascript, ale niczego nie ostrzegam!

test.js

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

możliwy duplikat [javascript do sprawdzenia kiedy okno przeglądarki jest zamknięte] (http://stackoverflow.com/questions/805463/javascript-to-check-when-the-browser-window-is-close) – Quentin

+2

Co powiesz na okno .onbeforeunload'? – tymeJV

Odpowiedz

22

Większość przeglądarek zapobiec alert w unload. Najlepsze co możesz zrobić, to użyć onbeforeunload obsługi, która zwraca ciąg - przeglądarka pokaże ten ciąg do użytkownika:

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

Demo here.

+0

Dziękuję. 'onbeforeunload' działa jak urok, ale tylko na FireFox !!! nie działa na Chrome !!! –

+1

@HamedKamrava: Czy zwracasz ciąg, zamiast wywoływać 'alert'? Zobacz moją zaktualizowaną odpowiedź i połączoną wersję demonstracyjną. – RichieHindle

+0

Działa jak urok :). tnx –

0

Korzystając body lub document zamiast okna.

+0

To też nie działa. – Renan

1

W jakiej przeglądarce testujesz ten kod?

Jeśli zaznaczysz poniższy link z W3School, Opera i Chrome go nie obsługują. LINK

A przykład pracuje onbeforeunload jest użycie jQuery w następujący sposób:

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

(miałem zamiar skomentować ten ostatni kawałek na powyższym stanowisku, ale nie mogę jeszcze skomentować: "()

Powiązane problemy