2010-10-22 10 views
6

Jak mogę zapytać użytkownika Czy na pewno chcesz opuścić stronę?Jak mogę poprosić internautę o potwierdzenie, czy naprawdę chce opuścić stronę?

Na przykład po kliknięciu przycisku Wstecz podczas pytania o Stackoverflow?

+0

Twoje pytanie nie ma większego sensu, masz na myśli, że sprawdza pytanie bez naciskania przycisku Wyślij? – Elliott

+0

Myślę, że ma na myśli okno dialogowe z potwierdzeniem, które otrzymujesz, gdy jesteś w połowie pisania pytania na stronie SO i naciskasz przycisk powrotu przeglądarki –

+0

@Elliott, to pytanie ma wiele sensu. Jeśli w polu "Twoja odpowiedź" znajduje się tekst, a nawigujesz z dala od strony, nawet gdy przeglądarka jest z powrotem, ostrzeże Cię. –

Odpowiedz

4

Najprostszym sposobem wykonania tej czynności jest powiązanie modułu obsługi zdarzeń ze zdarzeniem JavaScript "rozładuj". jQuery sprawia, że ​​jest to bardzo łatwe dzięki jego .unload() event handler. W metodzie wiązania możesz sprawdzić, czy jakiekolwiek pola formularza strony zawierają tekst. Zakładając, że wyskoczy alert powiadamiający użytkownika, utracą niezapisane dane, jeśli będą nawigować ze strony.

Ta metoda uruchomi alert za każdym razem, gdy użytkownik przejdzie z dowolnego miejsca poza stronę.

$(window).bind('beforeunload', function() { 
    alert('Handler for .beforeunload() called.'); 
}); 

To oczywiście nie jest bardzo przyjazny dla użytkownika, ale kilka szybkich zmian może to wykonalne do Twojego pytania.

+0

jak zrobimy, jeśli użytkownik coś edytuje? –

+2

Uważam, że wydarzenie 'unload' jest za późno, aby zapobiec opuszczeniu przez użytkownika. Musisz użyć zdarzenia 'onbeforeunload'. Ponadto nie można używać jquery do wiązania 'onbeforeunload' we wszystkich przeglądarkach – rojoca

+0

, więc chcesz powiedzieć, aby używać czystego JavaScript zamiast jquery z powodu kompatybilności przeglądarki –

Powiązane problemy