390 Stimmen

Wie kann ich das OnBeforeUnload-Dialogfeld außer Kraft setzen und durch mein eigenes ersetzen?

Ich muss die Benutzer vor nicht gespeicherten Änderungen warnen, bevor sie eine Seite verlassen (ein ziemlich häufiges Problem).

window.onbeforeunload = handler

Das funktioniert, aber es wird ein Standarddialog mit einer irritierenden Standardnachricht angezeigt, die meinen eigenen Text umschließt. Ich muss entweder vollständig die Standardnachricht ersetzen, so dass mein Text klar ist, oder (noch besser) ersetzen Sie den gesamten Dialog mit einem modalen Dialog mit jQuery.

Bisher bin ich gescheitert, und ich habe niemanden gefunden, der eine Antwort zu haben scheint. Ist das überhaupt möglich?

Javascript auf meiner Seite:

<script type="text/javascript">   
    window.onbeforeunload = closeIt;
</script>

Die Funktion closeIt():

function closeIt()
{
  if (changes == "true" || files == "true")
  {
      return "Here you can append a custom message to the default dialog.";
  }
}

Mit jQuery und jqModal habe ich versucht, diese Art von Sache (mit einem benutzerdefinierten Dialog bestätigen):

$(window).beforeunload(function () {
    confirm('new message: ' + this.href + ' !', this.href);
    return false;
});

was auch nicht funktioniert - ich kann anscheinend nicht mit dem beforeunload Veranstaltung.

1voto

Wie wäre es, die spezielle Version des "bind"-Befehls "one" zu verwenden. Sobald der Event-Handler das erste Mal ausgeführt wird, wird er automatisch als Event-Handler entfernt.

$(window).one("beforeunload", BeforeUnload);

1voto

Krishna Patel Punkte 13
 <script type="text/javascript">
        window.onbeforeunload = function(evt) {
            var message = 'Are you sure you want to leave?';
            if (typeof evt == 'undefined') {
                evt = window.event;
            }       
            if (evt) {
                evt.returnValue = message;
            }
            return message;
        } 
    </script>

beziehen sich auf http://www.codeprojectdownload.com

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X