Я создаю клиент чата, который использует базу данных для проверки состояния сеанса 0-ожидания, 1-работа, 2-закрытого.
У меня есть кнопка закрытия, которая изменит статус на 2, но мне было интересно, как определить, закрыт ли браузер, просто нажав x?
Основная причина этого – я не хочу, чтобы сеанс показывался как работающий, когда один из участников закрыл свой браузер.
используйте события 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?"); })