2

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.

3 Answers 3

5

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
};
Sign up to request clarification or add additional context in comments.

Comments

3

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.

1 Comment

@THeK. Added answer for chrome. Try it
2

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?"); 
})

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.