2014-08-27 2 views
0

Мне нужно сделать Async Http Сообщение на внешний URL, когда пользователь закрывает браузер или переходит на другую страницу.JS Событие BeforeUnload иногда не срабатывает

Итак, я подключил обработчик JS к событию BeforeUnload.

Иногда это срабатывает, а иногда нет. Я проверяю хром. Всякий раз, когда я пытаюсь отлаживать скрипт с помощью инспектора, он всегда работает нормально.

я должен использовать JavaScript только (без внешних библиотек, как JQuery и т.д.)

ответ

0

Вы не можете использовать операции асинхронных в beforeunload или разгружать события. Чтобы ваш скрипт работал, вы должны сделать его синхронным. Это было бы легко, добавив свойство async: false в вашу функцию ajax (или аналогично, если вы используете другой подход). Возможно, это потому, что вы откладываете удаление окна, когда вы отлаживаете его работу. Я также прочитал, что для вызова функции вам нужно вернуть что-то в конце события. Обычно, если вы вернете строку, текст будет отображаться во всплывающем окне. Я думаю, вы можете найти более полезную информацию здесь: window.onbeforeunload not working

Смежные вопросы