Смотря, что вы хотите сделать. В некоторых своих проектах, я использовал событие
beforeunload для закрытия сессии и для этого отправлял ajax-запрос с определенной меткой. Это вполне возможно.
evg_ писал, что
не получится, на 99.999% уверен
, а я, пожалуй, использую оставшиеся 0.001% )) Для теста, создайте html-документ, в который запишите следующий JS-код:
window.addEventListener('beforeunload', function (e) {
var xhr = new XMLHttpRequest();
xhr.open('POST', 'handler.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send( 'key=' + encodeURIComponent('Hi') );
e.preventDefault();
var confirmationMessage = "";
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}, false);
И еще один PHP-файл "handler.php"
в той же директории, в котором запишем:
<?php
if (!empty($_POST['key'])) {
file_put_contents('test.txt', $_POST['key']);
}
Теперь откроем и закроем html-файл в любом браузере, кроме осла восьмой версии и ниже. Просто потому, что объект XMLHttpRequest в них не поддерживается, а кроссбраузерное решение нам для теста и не нужно. Результат можем наблюдать в создавшемся файле test.txt