2009-10-14 14 views
20

Chcę zapytać użytkownika, czy naprawdę chce opuścić stronę, czy nie, kiedy kliknie przycisk zamykania, tak jak to zrobiono w google docs. Jak to zrobić, używając jquery?Jquery zapobiec zamykaniu okna

Odpowiedz

28

Ustawiasz właściwość okna na onbeforeunload dla funkcji.

This post has a good example on how to do it.

Albo inny przykład:

<script language="JavaScript"> 
    var needToConfirm = true; 

    window.onbeforeunload = confirmExit; 
    function confirmExit() 
    { 
    if (needToConfirm) 
     return message to display in dialog box; 
    } 
</script> 

... 

<input type="Submit" value="Save" onclick="needToConfirm = false;" /> 


I ustawić needToConfirm do formularza można:

$(document).ready(function() { 
    $(':input', document.myForm).bind("change", function() { needToConfirm = true; }); // Prevent accidental navigation away 
}); 
-2

jQuery UI mogą być przydatne dla Ciebie - patrz this link. Pokazuje kilka różnych rodzajów dialogów - moim zdaniem jest "Modalne potwierdzenie". Należy jednak pamiętać, że biblioteka JQuery UI jest dość mocna, więc może być lepiej, gdybyś szukał bardziej zindywidualizowanej opcji (kilka pojawiło się, szukając JQuery Confirm Modal). Nie mogę ręczyć za jakość tych rozwiązań, ponieważ nigdy ich nie próbowałem.

+2

Dlaczego głosowanie w dół na stanowisko wykonane prawie 7 lat temu? – n00dle

3

Po pracy dla mnie;

$(window).unload(function() { 
       if(event.clientY < 0) { 
        //do whatever you want when closing the window.. 
       } 
      }); 
+2

Myślę, że zdarzenie "beforeunload" jest o wiele bardziej przydatne, aby zapytać użytkownika, czy chce zapisać swoje zmiany: '$ (window) .bind ('beforeunload', function() {...});' –

+0

Ah! Wygląda na to, że zmieniło się to w ciągu ostatnich kilku lat, a więc w 2011 roku mogło nadal działać. –

Powiązane problemy