Ich habe window.onbeforeunload richtig triggern. Es wird ein Bestätigungsfeld angezeigt, um sicherzustellen, dass der Benutzer weiß, dass er das Fenster navigiert (schließt) und dass alle nicht gespeicherten Daten gelöscht werden.Wie erkennt man, wenn ein Link angeklickt wurde, wenn window.onbeforeunload ausgelöst wird?
Ich habe eine einzigartige Situation, in der ich nicht möchte, dass dies ausgelöst wird, wenn ein Benutzer durch Klicken auf einen Link von der Seite weg navigiert, aber ich kann nicht herausfinden, ob ein Link innerhalb der Funktion geklickt wurde um die Funktion zu stoppen. Dies ist, was ich für Code habe:
window.onbeforeunload = function() {
var message = 'You are leaving the page.';
/* If this is Firefox */
if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
if(confirm(message)) {
history.go();
}
else {
window.setTimeout(function() {
window.stop();
}, 1);
}
}
/* Everything else */
else {
return message;
}
}
Das ist ein großer Dank für die Antwort. Ich versuche, dies ohne jQuery zu verwenden - und ich versuche herauszufinden, wie man die Poormans-Implementierung integriert, aber ich kann es nicht herausfinden (vergib mir, ich bin ein bisschen wie ein JS-Newb). – mirin
Ihr Code war halb richtig. Ich habe die Frage mit der vollständigen Antwort beantwortet. – mirin
Wenn jemand Probleme hat, es in IE arbeiten zu lassen, musste ich undefined anstelle von null zurückgeben. Funktioniert sowohl in ie als auch in Chrome. – Janspeed