Вероятно, это не тот ответ, который вы ищете, но «выход из системы» на unload
никогда не будет работать надежно. В качестве крайнего примера рассмотрим случай, когда браузер падает или уничтожается с помощью диспетчера задач Windows. Так что вам лучше реализовать дополнительный механизм, чтобы определить, ушел ли пользователь. Обычно это делается путем периодической отправки запроса на сервер. Если этот запрос не получен в течение значительного времени (то есть что-то, что не может быть вызвано медленным соединением или другими сбоями), вы отменяете связь с пользователем.
Тем не менее, я протестировал Firefox 4 и MSIE 8 и оба корректно запускают событие unload
в кадре, если вкладка или браузер закрыты. Chrome 12 этого не делает, это, вероятно, браузер, с которым вы тестировали. Я считаю это ошибкой Chrome.