Ich möchte eine Bestätigung machen, bevor der Benutzer die Seite verlässt. Wenn er ok sagt, wird es auf eine neue Seite umleiten oder abbrechen, um zu gehen. Ich habe versucht, es mit Onunload zu schaffen
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
Aber es bestätigt, nachdem die Seite bereits geschlossen wurde? Wie mache ich das richtig?
Es wäre sogar noch besser, wenn jemand zeigt, wie es mit jQuery geht?
javascript
jquery
kd7
quelle
quelle
Antworten:
onunload
(oderonbeforeunload
) kann den Benutzer nicht auf eine andere Seite umleiten. Dies ist aus Sicherheitsgründen.Wenn Sie eine Eingabeaufforderung anzeigen möchten, bevor der Benutzer die Seite verlässt, verwenden Sie
onbeforeunload
:Oder mit jQuery:
Dadurch wird der Benutzer nur gefragt, ob er die Seite verlassen möchte oder nicht. Sie können ihn nicht umleiten, wenn er auf der Seite bleiben möchte. Wenn sie sich entscheiden zu gehen, geht der Browser dorthin, wo sie es angewiesen haben.
Sie können damit
onunload
Dinge erledigen, bevor die Seite entladen wird, aber Sie können nicht von dort umleiten (Chrome 14+ blockiert darin Warnungenonunload
):Oder mit jQuery:
quelle
onbeforeunload
, fügt der Browser diese Zeichenfolge in ein eigenes Bestätigungsfeld ein. Die Verwendungconfirm
ist inonunload
und nutzlosonbeforeunload
, da nur der Browser steuern kann, wohin sie geht, nicht Sie. Schauen Sie sich diese Demo an: jsfiddle.net/3kvAConbeforeunload
,return false
führt dazu, dass der Browser in einem Dialogfeld "false" anzeigt . Sie müssen,return undefined
wenn Sie das Fenster ohne Benutzerwarnung schließen lassen möchten.Dieser Code, wenn Sie auch feststellen, dass sich der Formularstatus geändert hat oder nicht.
Sie können die Google JQuery Form Serialize-Funktion verwenden. Dadurch werden alle Formulareingaben erfasst und im Array gespeichert. Ich denke diese Erklärung ist genug :)
quelle
Dies warnt beim Verlassen der aktuellen Seite
quelle
Dies habe ich getan, um die Bestätigungsmeldung anzuzeigen, sobald ich nicht gespeicherte Daten habe
Wenn Sie "undefined" zurückgeben, wird die Bestätigung deaktiviert
Hinweis: Die Rückgabe von "null" funktioniert nicht mit dem Internet Explorer
Sie können auch "undefined" verwenden, um die Bestätigung zu deaktivieren
quelle
Um ein Popop mit Chrome 14+ zu haben, müssen Sie Folgendes tun:
Der Benutzer wird gefragt, ob er bleiben oder gehen möchte.
quelle
jQuery(document)
und ich schlage vor, es nach dem Laden aller Plugins zu korrigieren. Außerdem macht dieses Snippet keine Warnung ... es ist nur eine Demo mitreturn
.Sie können den folgenden Einzeiler verwenden, um den Benutzer immer zu fragen, bevor Sie die Seite verlassen.
In dieser Antwort erfahren Sie, ob der Benutzer etwas auf der Seite geändert hat .
quelle
Normalerweise möchten Sie diese Nachricht anzeigen, wenn der Benutzer Änderungen an einem Formular vorgenommen hat, diese jedoch nicht gespeichert werden.
Verwenden Sie diesen Ansatz, um eine Nachricht nur dann anzuzeigen, wenn der Benutzer etwas geändert hat
quelle
https://www.w3schools.com/tags/ev_onbeforeunload.asp
quelle
Nur ein bisschen hilfreicher, aktivieren und deaktivieren
quelle
Die meisten Lösungen hier haben bei mir nicht funktioniert, daher habe ich die hier gefundene verwendet
Ich habe auch eine Variable hinzugefügt, um das Bestätigungsfeld zuzulassen oder nicht
quelle