it-swarm.com.de

Fenster schließen-Ereignis von Jquery erkennen

Könnten Sie mir bitte die beste Möglichkeit geben, nur Fenster schließen-Ereignis für alle Browser per jquery zu ermitteln?

Ich meine das Klicken auf die X-Schaltfläche im Browser oder in window.close (), nicht F5, Formularübermittlung, window.location oder Link. Ich habe nach vielen Themen gesucht, aber nicht den richtigen Weg gefunden.

Vielen Dank für die Unterstützung.

21
Duc Le

Es gibt kein spezielles Ereignis zum Erfassen des Browserschließereignisses.

Sie können nur beim Entladen der aktuellen Seite erfassen.

Durch diese Methode wird es bewirkt, während die aktuelle Seite aktualisiert/navigiert wird.

Selbst die Berechnung der XY-Position des Mausereignisses führt nicht zu einem guten Ergebnis.

11
Naveenkumar K

Sie können verwenden:

$(window).unload(function() {
    //do something
}

Unload () ist in jQuery Version 1.8 veraltet. Wenn Sie also jQuery> 1.8 verwenden, können Sie stattdessen auch beforeunload verwenden.

Das beforeunload-Ereignis wird ausgelöst, wenn der Benutzer Ihre Seite aus irgendeinem Grund verlässt.

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

Quelle Ereignis zum Schließen des Browserfensters

36
mjimcua

Die Methode unload () war in jQuery Version 1.8 veraltet.

wenn Sie also ältere Versionen als 1.8 verwenden

dann benutze -

$(window).unload(function(){
alert("Goodbye!");
});

und wenn Sie 1.8 und höher verwenden

dann benutze -

window.onbeforeunload = function() {
    return "Bye now!";
};

hoffe das klappt :-)

9
Rahul Vyas

Es gibt kein spezielles Ereignis zum Erfassen des Browserschließereignisses. Wir können aber anhand des Browsers Positionen XY erkennen.

<script type="text/javascript">
$(document).ready(function() {
  $(document).mousemove(function(e) {
    if(e.pageY <= 5)
    {
        //this condition would occur when the user brings their cursor on address bar 
        //do something here 
    }
  });
});
</script>
6
user3559718

Kombinieren Sie das Ereignis mousemove und window.onbeforeunload: - Ich habe TimeOut für Audit Table festgelegt.

 $(document).ready(function () {
 var checkCloseX = 0;
        $(document).mousemove(function (e) {
            if (e.pageY <= 5) {
                checkCloseX = 1;
            }
            else { checkCloseX = 0; }
        });

        window.onbeforeunload = function (event) {
            if (event) {
                if (checkCloseX == 1) {

                    //alert('1111');
                    $.ajax({
                        type: "GET",
                        url: "Account/SetAuditHeaderTimeOut",
                        dataType: "json",
                        success: function (result) {
                            if (result != null) {
                            }
                        }
                    });
                }
            }
        };
  });
3
Harris Yer