2016-06-20 9 views
0

Ich brauche Browser Tab schließen und Sitzung mit AJAX-Aufruf zu löschen.Detect Browser Registerkarte schließen Ereignis Clear php Sitzung

window.onbeforeunload erkennt nur beim erneuten Laden der Seite.

+0

Ich denke, Sie müssen einen AJAX-Aufruf beim Entladen tun. Der Server muss jedoch antworten, bevor das Fenster tatsächlich geschlossen wird. – Atticweb

+0

** onbeforunload ** ist kein geeignetes Ereignis für Ihr Ziel, da es jedes Mal ausgeführt wird, wenn Sie Ihre Seite verlassen. folgen Sie bitte https://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-oder-tab-closed-event/, um Ihr Ziel zu erreichen. –

Antwort

0

Haben Sie diesen Code ausprobiert?

window.onbeforeunload = function (event) { 
    var message = 'Important: Please click on \'Save\' button to leave this page.'; 
    if (typeof event == 'undefined') { 
     event = window.event; 
    } 
    if (event) { 
     event.returnValue = message; 
    } 
    return message; 
}; 

$(function() { 
    $("a").not('#lnkLogOut').click(function() { 
     window.onbeforeunload = null; 
    }); 
    $(".btn").click(function() { 
     window.onbeforeunload = null; 
}); 
}) 

; Die zweite Funktion ist optional, um eine Aufforderung beim Klicken auf #lnkLogOut- und .btn-Elemente zu vermeiden.

Noch eine Sache, die benutzerdefinierte Eingabeaufforderung wird in Firefox nicht funktionieren (auch in der neuesten Version auch). Für weitere Details, gehen Sie bitte zu diesem Thema.

+0

Dies funktioniert beim erneuten Laden der Seite, nicht beim Schließen der Browser-Registerkarte. – Vijayakumar

+0

Ich schlage vor, Sie Sitzung basierend auf Aktivität zu erstellen, wenn Sitzung für eine bestimmte Zeit keine Operation ausgeführt wird, dann löschen Sie einfach die Sitzung, ihre beste und empfohlene Vorgehensweise. –

Verwandte Themen