Intereting Posts
Файл конфигурации yaml для среды выполнения php Прозрачный до белого в Imagick для PHP Узнайте, имеет ли пользователь публичный или закрытый профиль на instagram с использованием API? Инъекция зависимостей Laravel в промежуточном программном обеспечении граница слова regex не работает в ut8 на некоторых серверах Лучший способ распознавания неиспользуемых переменных PHP Catchable fatal error: объект класса не может быть преобразован в строку Получите максимальный ID и минимальный идентификатор из определенного столбца в MySQL php Отобразить представление для ошибки 404 в CodeIgniter Zend Application из подкаталога, в котором правильны ссылки на Zend Использование preg_match для определения надежного пароля не удается установить XDEBUG на окна? Является ли это подходящей системой регистрации и регистрации Изменение ключей с помощью array_map на многомерных массивах с использованием PHP Как проверить, установлен ли memcache или memcached для PHP?

jQuery.ajax on onbeforeunload не работает

У меня есть одна страница php, подобная этой

<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> window.onbeforeunload = saveBeforeExit; function saveBeforeExit() { jQuery.ajax({ url:"truncate_logs.php", type:"GET", async:false, success:function(data){ } }) } </script> //I am creating 'logs_".$t.".xls' here <?php header("Location: log_files/logs_".$t.".xls"); ?> 

Моя проблема здесь

Местоположение: onbeforeunload не вызван.

Related of "jQuery.ajax on onbeforeunload не работает"

onbeforeunload не работает, потому что он неправильно закодирован. Вам нужно вернуть строку из onbeforeunload, которая будет использоваться как сообщение в появившемся окне.

Я нашел ответ. Добавьте async: false в запрос jQuery ajax.

См. Как я могу получить jQuery для выполнения синхронного, а не асинхронного запроса Ajax?

У меня была та же проблема, и я решил:

 window.onbeforeunload = function (e) { var e = e || window.event; // For IE and Firefox if (e) { e.returnValue = ''; } // For Chrome and Safari return ''; }; 

Однако Opera, похоже, не поймает onbeforeunload событие, так плохо!

Вероятно, ваше назначение на событие происходит слишком рано (страница не готова).
Пожалуйста попробуйте:

 $(document).ready(function() { window.onbeforeunload = saveBeforeExit; });