4 Stimmen

Wie man mit jQuery erkennt, ob der Browser geschlossen ist

Ich brauche, um zu erkennen, wenn der Browser mit jQuery geschlossen wird, und tun ein Ereignis, wenn dies wahr ist. Ich habe eine Chat-Funktion auf meiner Website (ähnlich wie Facebook), die den Benutzer eingeloggt hält, wie sie zu anderen Seiten innerhalb der Website-Struktur navigieren, aber muss sie aus dem Chat anmelden (so dass sie nicht online für andere erscheinen), wenn sie die Browser-Schließen-Taste klicken. Also .unload() wird nicht funktionieren, da .unload() die Abmeldefunktion auf alle Fensteraktionen anwendet, einschließlich der Navigation zu einer anderen Seite innerhalb der Website-Struktur. .unload() funktioniert bei geschlossenen Browsern, aber auch bei der Vorwärts- und Rückwärtsnavigation im Browser, also brauche ich eine Möglichkeit zu erkennen, ob der Browser geschlossen wird UND NUR, wenn der Browser geschlossen wird.

2voto

lonesomeday Punkte 224087

Am besten wäre es, eine regelmäßige Abfrage des Servers einzurichten, um ihm mitzuteilen, dass der Benutzer noch auf der Seite ist. Sie könnten einmal pro Minute eine AJAX-Anfrage senden, um zu bestätigen, dass der Benutzer noch auf der Seite ist, und ihn serverseitig abmelden, wenn seit der letzten Benachrichtigung mehr Zeit verstrichen ist.

Dies ist vielleicht nicht die zuverlässigste Lösung, aber eine sehr verbreitete, und sie wird wahrscheinlich für das, was Sie tun wollen, effektiv sein.

1voto

Pekka Punkte 429407

Dies ist nicht möglich. onunload / onbeforeunload sind die einzigen Ereignisse, die das System anbietet. Der Grund, warum eine Seite entladen wird, wird der Seite nicht mitgeteilt.

Es ist möglich, häufig zu prüfen, ob ein Fenster die Ihr Skript geöffnet hat noch existiert. Diese Lösungen funktionieren auf der Grundlage setInterval() und das Fenster ist closed Eigentum. Aber ich glaube nicht, dass es das ist, wonach Sie suchen.

1voto

Bjorn Punkte 64323

Was auch immer Sie für den Chat verwenden (Orbited, Websockets?), sollte in der Lage sein, ein Session-Timeout zu erkennen.

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