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.
Antworten
Zu viele Anzeigen?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.
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.