Окно обнаружения закрыто

Я создаю клиент чата, который использует базу данных для проверки состояния сеанса 0-ожидания, 1-работа, 2-закрытого.

У меня есть кнопка закрытия, которая изменит статус на 2, но мне было интересно, как определить, закрыт ли браузер, просто нажав x?

Основная причина этого – я не хочу, чтобы сеанс показывался как работающий, когда один из участников закрыл свой браузер.

Related of "Окно обнаружения закрыто"

используйте события unload и onbeforeunload :

 window.onunload = window.onbeforeunload = function (){...}; 

Лучше зарегистрироваться на обоих мероприятиях, чтобы быть уверенным, что обратный вызов будет срабатывать.

Вы могли бы прослушать onbeforeunload-событие с помощью JavaScript, который запускается при закрытии окна браузера.

Когда вы отметили вопрос с помощью jquery, вы можете использовать .unload () :

 $(window).unload(function() { // Do some ajax-request to kill the session }); 

Без jQuery это будет:

 window.onbeforeunload = function() { // Do some ajax-request to kill the session }; 

Вы можете использовать событие beforeunload , потому что событие unload устарело в jQuery версии 1.8, а событие beforeunload запускается всякий раз, когда пользователь покидает вашу страницу.

 $(window).bind("beforeunload", function() { return confirm("Do you really want to close?"); })