Как я могу выполнить функцию JavaScript, когда пользователь пытается покинуть страницу? - PullRequest
1 голос
/ 27 мая 2011

Я ищу способ автоматически установить статус пользователя как «офлайн», и для этого мне нужно выполнить функцию JavaScript, если только нет лучших идей. Как я могу запустить функцию, когда пользователь пытается отойти от страницы? Я знаю, что есть способ отображения окна сообщения, поэтому должен быть способ сделать это.

Ответы [ 3 ]

5 голосов
/ 27 мая 2011

Используйте метод unload для вызова метода ajax. Обратите внимание на важный атрибут async, который сообщает браузеру, что ему нужно подождать HTTP-ответ, прежде чем закрывать окно (чтобы ваш сервер получил статус «offline»).

$(window).unload(function() {
    $.ajax({
        url: "setoffline.php",
        async: false
    });
});
0 голосов
/ 27 мая 2011

Следующее событие срабатывает, когда окно «выгружается»:

window.onbeforeunload

Я связал это с обработчиком события onload в аналогичном сценарии, где у меня была строка в моей БД, отслеживающая последний сеанс входа пользователя. У него была «введенная» дата, когда они входили в систему / заходили на сайт, и я устанавливал «Последний раз» DateTime для события onunload, но я также очищал время «Последний раз видел» на «onload» страницы .

Итак, в последний раз, когда они закрывают какую-либо страницу, устанавливается дата последнего посещения, и она сохраняется

0 голосов
/ 27 мая 2011

Попробуйте использовать это.

<body onbeforeunload="return RunOnClose()">
function HandleOnClose() {
    //do your magic here
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...