2016-08-10 16 views
22

Podczas korzystania z window.onbeforeunload (lub $(window).on("beforeonload")), czy jest możliwe wyświetlenie niestandardowej wiadomości w tym wyskakującym okienku?Czy można wyświetlić niestandardową wiadomość w oknie popup przed uruchomieniem?

Może mała sztuczka działająca na główne przeglądarki?

Patrząc na istniejące odpowiedzi, mam przeczucie, że było to możliwe w przeszłości przy użyciu rzeczy takich jak confirm lub alert lub event.returnValue, ale teraz wydaje się, że już nie działają.

Jak wyświetlić niestandardową wiadomość w oknie popup przed uruchomieniem? Czy to jest jeszcze/nadal możliwe?

Odpowiedz

58

Aby ustawić komunikat potwierdzający, zanim użytkownik zamyka okno można użyć

$(window).bind("beforeunload",function(event) { 
    return "You have some unsaved changes"; 
}); 


      Ważne jest, aby zauważyć, że nie można umieścićconfirm/alertwewnątrzbeforeunload


Jeszcze kilka uwag:

  1. NIE wszystkie przeglądarki obsługują tej (więcej informacji w sekcji Browser compatibility na MDN)
  2. w Firefoksie trzeba zrobić jakąś prawdziwą interakcję z stronę, aby ta wiadomość została wyświetlona użytkownikowi.
  3. Każda przeglądarka może dodać własny tekst do wiadomości.

Oto wyniki przy użyciu przeglądarek mam dostęp do:

Chrome:

Chrome alert on exit

Firefox:

Firefox alert on exit

Safari:

Safar alert on exit

IE:

IE alert on exit

Wystarczy, aby upewnić się - trzeba mieć jQuery zawarte

więcej informacji na temat przeglądarek obsługuje i usunięcie asn:

  1. Chrome removed wsparcie dla niestandardowego wiadomości w ver 51
  2. Opera removed wsparcie dla niestandardowego wiadomości w ver 38
  3. Firefox usunięto wsparcie dla niestandardowej wiadomości w wersji 44.0 (wciąż szuka źródła tej informacji)
  4. Safari removed obsługa niestandardowej wiadomości w wersji 9.1
+2

* NIE Wszystkie przeglądarki obsługują to * - Właściwie które z nich to obsługują? –

+0

Chrome, Safari, Firefox, IE – Dekel

+4

Testowałem w przeglądarce Chrome i to * nie * działa. Ma ** nie ** wyświetla * Masz niezapisane zmiany *, ale inną wiadomość. Moje pytanie dotyczy konkretnie, czy można wyświetlić niestandardową wiadomość. Nie obchodzi mnie, czy wyświetla domyślną treść. Chcę tylko, żeby tekst, który nam przekazujemy, był gdzieś wyświetlany. –