Heim >Web-Frontend >js-Tutorial >Wie kann ich das Schließen von Browserfenstern erkennen, ohne Formularübermittlungen abzufangen?

Wie kann ich das Schließen von Browserfenstern erkennen, ohne Formularübermittlungen abzufangen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-13 22:40:14325Durchsuche

How Can I Detect Browser Window Closure Without Intercepting Form Submissions?

Erfassen des Browserfenster-Schließereignisses ohne Abfangen der Formularübermittlung

Um das Browserfenster-Schließereignis speziell zu erfassen und Konflikte mit der Formularübermittlung zu vermeiden, wird jQuery vor dem Entladen verwendet Das Ereignis „beforeunload“ kann mit einer geringfügigen Änderung ausgenutzt werden.

Das Ereignis „beforeunload“ löst in seiner jetzigen Form jede Aktion aus, die es verursacht die Seite, die verlassen werden soll. Um es nur auf Fensterschließereignisse zu beschränken, verwenden wir den folgenden Ansatz:

Der aktualisierte Code für jQuery-Versionen 1.7 und höher:

var inFormOrLink;
$('a').on('click', function() { inFormOrLink = true; });
$('form').on('submit', function() { inFormOrLink = true; });

$(window).on("beforeunload", function() { 
    return inFormOrLink ? "Do you really want to close?" : null; 
})

Für ältere Versionen von jQuery (vor 1.7):

var inFormOrLink;
$('a').live('click', function() { inFormOrLink = true; });
$('form').bind('submit', function() { inFormOrLink = true; });

$(window).bind("beforeunload", function() { 
    return inFormOrLink ? "Do you really want to close?" : null; 
})

Das obige ist der detaillierte Inhalt vonWie kann ich das Schließen von Browserfenstern erkennen, ohne Formularübermittlungen abzufangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn