JavaScript: Warnung beim Verlassen der Seite anzeigen
Info von Stefan Trost | Letztes Update am 18.04.2024 | Erstellt am 02.12.2013
In dieser Info möchte ich euch zeigen, wie man mit der Hilfe von JavaScript eine Warnung anzeigen lassen kann, wenn ein Nutzer versucht, die Seite zu verlassen.
Dies kann zum Beispiel sinnvoll sein, um Nutzer davor zu bewahren das Browserfenster versehentlich zu schließen, wenn ein Formular ausgefüllt aber noch nicht abgeschickt wurde. Aber dazu später. Zunächst schauen wir uns an, wie man die Meldung immer anzeigen kann.
Hinweis bei jedem Verlassen der Seite anzeigen
Soll der Hinweis beim Verlassen der Seite immer angezeigt werden, unabhängig davon was der Besucher gemacht hat, können wir den folgenden Code verwenden.
In reinem JavaScript (ohne jQuery) arbeiten wir mit window.onbeforeunload:
window.onbeforeunload = function() { return 'Möchten Sie die Seite wirklich verlassen?'; };
Und mit jQuery sieht dieselbe Funktion folgendermaßen aus:
$(window).bind('beforeunload', function() { return 'Möchten Sie die Seite wirklich verlassen?'; });
Warnung nur zeigen wenn etwas eingegeben wurde
Ein typischer Anwendungsfall für die Warnung ist auf Seiten, auf denen den Nutzern die Möglichkeit geboten wird, ein Formular auszufüllen. In diesem Fall ist es jedoch nur dann sinnvoll, den Hinweis anzuzeigen, wenn auch wirklich etwas ausgefüllt wurde und wenn die Seite auf einem anderen Weg als über den Submit-Button des Formulars verlassen wurde. Also zum Beispiel, wenn versehentlich der Tab oder der Browser geschlossen wurde oder der Nutzer auf einen Link geklickt hat und die eingegebenen Daten drohen verloren zu gehen.
Und genau diesen Fall abzudecken, können wir unser Skript entsprechend erweitern:
var submitted = false; var userinput = false; $(document).ready(function() { $("form").submit(function() { submitted = true; }); $(".userinputs").change(function() { userinput = true; }); window.onbeforeunload = function () { if (userinput && !submitted) { return 'Sie haben das Formular noch nicht abgesendet.\ Möchten Sie die Seite wirklich verlassen?'; } } });
Zunächst definieren wir uns die Variablen "submitted" (wurde der Submit-Button geklickt) und "userinput" (hat der Nutzer etwas eingeben). Anschließend erweitern wir die window.onbeforeunload Funktion um eine if-Abfrage: nur dann wenn die Variable "userinput" auf "true" und "submitted" auf "false" steht, soll der Warnhinweis-Dialog gezeigt werden. Ansonsten kann der Nutzer ohne eine Warnung die Seite verlassen.
Die Variablen "submitted" und "userinput" setzen wir auf "true", sobald der Nutzer auf den Submit-Button klickt oder den Inhalt eines Elements mit der Klasse "userinputs" ändert. Entsprechend sollten alle Elemente die überwacht werden sollen, diese Klasse haben oder man passt das Skript dahingehend an, dass man direkt den Namen der Elemente abfragt.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
jQuery: Hinweis beim Verlassen der Seite wenn ein Formular noch nicht abgeschickt wurde
Tutorial | 1 Kommentar
jQuery: Nach unten und nach oben scrollen mit und ohne JavaScript
Tipp | 0 Kommentare
jQuery: Window.OnBeforeUnload Warnung anzeigen außer wenn Submit-Button geklickt wurde
Tipp | 0 Kommentare
JavaScript: Bereich durch Link aufklappen und zuklappen
Tutorial | 5 Kommentare
Bilder, CSS, JS und Seiten neu laden trotz Browser-Cache
Tipp | 2 Kommentare
JavaScript: Submit einer Form abfangen
Tutorial | 0 Kommentare
JavaScript: Arrays erstellen und nutzen
Info | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Danke.
Hatte ich gerade gebraucht. Meine Funktion bisher meckerte schon bei onblur und bei mehreren Feldern auf einer Seite kommt das nicht so gut.
03.12.2014 um 18:03
Top! Auch wenn die Kommentarfunktion auf dieser Seite etwas nervt, weil ich mindestens 100 Zeichen eingeben muss... Trotzdem, danke für das Script!
18.02.2015 um 12:45
Danke, dass du dies mit uns geteilt hast.
Verstehe ich richtig, dass .userinputs eine Klasse auf 1 Input-Feld ist oder bezieht sich das auf mehrere?
30.06.2023 um 10:32
Wie du magst. Du kannst die Klasse .userinputs einem oder auch mehreren Input-Feldern zuweisen.
Jedes Input-Feld, das die Klasse .userinputs hat wird auf Änderungen "überwacht". Sprich, wenn du 4 Input-Felder hast und nur den ersten beiden die Klasse zuweist, kommt die Meldung nur wenn der Nutzer den Wert mindestens einer der ersten beiden Felder geändert hat. Wenn der Nutzer nur den Wert der letzten beiden Felder ändert, kommt in diesem Fall keine Meldung.
Ich überlege gerade den Artikel noch um ein HTML-Beispiel zu erweitern, dann sollte das klarer werden.
30.06.2023 um 15:52