I'm creating a chat client which uses a database to check the status of a session 0-waiting, 1-running, 2-closed.
I have a close button which will change the status to 2 but I was wondering, how do I detect if the browser is closed just by pressing x?
The main reason for this is I don't want the session showing up as running when one of the participants has closed their browser.
use the unload
and onbeforeunload
events:
window.onunload = window.onbeforeunload = function (){...};
It's better to register to both of the events to be sure the callback will fire.
You could listen for the onbeforeunload-event with JavaScript, which is fired when the browser window is closed.
As you tagged the question with jquery, you can use .unload():
$(window).unload(function() {
// Do some ajax-request to kill the session
});
Without jQuery it would be:
window.onbeforeunload = function() {
// Do some ajax-request to kill the session
};
You can use beforeunload event, because unload event is deprecated in jQuery version 1.8 and the beforeunload event fires whenever the user leaves your page.
$(window).bind("beforeunload", function() {
return confirm("Do you really want to close?");
})