В моих тестах Chrome (и, как я полагаю, как и любой другой браузер веб-браузера), возможно, UNABLE выполняет запрос AJAX ПЕРЕД оставлением страницы.Webkit (Chrome или Safari) делает AJAX безопасным для onunload/onbeforeunload
Представьте, например, что вам нужно очистить что-то на сервере, потому что пользователь нажал на какую-либо ссылку или покинул страницу.
Первое, что я заметил, что window.onunload НЕ работать в любом случае на Chrome
После того, как вы используете window.onbeforeunload убедитесь, что вы не помещайте в организме, как это (Webkit): Потому что это игнорируется. ВЫ ДОЛЖНЫ выполнить window.onbeforeunload = function() {...}, чтобы убедиться, что привязка завершена (или используйте для этого jquery или protoype libs)
В вашем коде onbeforeunload ASYNCHRONOUS Ajax, как это НЕ РАБОТАЕТ либо:
var req = new XMLHttpRequest();
req.open("GET", "dosomething.page");
req.send(null);
(хотя это будет работать в Firefox)
это будет работать, если только, если запрос сделан синхронные так:
var req = new XMLHttpRequest();
req.open("GET", "dosomething.page",false);
req.send(null);
хотя имейте в виду, что синхронный может привести к зависанию браузера в течение 2 минут, если сервер НЕ отвечает.
Также Firefox НЕ работает с onunload.
Итак, в конце концов, вы должны предоставить другой код для каждого браузера или семейство браузеров.
Я не смог проверить IE на этом. Кто-нибудь знает? Является ли IE более похожим на Chrome или FF? или он отличается от обоих?