При редактировании страницы в моей системе пользователь может решить перейти на другой веб-сайт и при этом потерять все изменения, которые он не сохранил.
Я хотел бы перехватить любую попытку перейти на другую страницу и предложить пользователю убедиться, что он хочет, чтобы это произошло, поскольку он потенциально может потерять свою текущую работу.
Gmail делает это очень похожим образом. Например, составьте новое электронное письмо, начните вводить текст в теле сообщения и введите новое место в адресной строке (скажем, twitter.com или что-то в этом роде). Появится запрос "Вы уверены?"
Идеи, как это воспроизвести? Я нацелен на IE8, но также хотел бы быть совместим с FF и Chrome.
javascript
javascript-events
internet-explorer
Крис Балланс
источник
источник
Ответы:
Подобно ответу Гомми, но он также поддерживает старые версии IE и Firefox.
источник
var foo, bar;
совпадает сvar foo;
var bar;
См. Эту статью. Функция, которую вы ищете, это функция onbeforeunload
образец кода:
источник
Вместо надоедливого всплывающего окна с подтверждением было бы неплохо отложить, оставив немного (дело миллисекунд), чтобы успешно отправить несохраненные данные на сервер, что мне удалось для моего сайта, написав фиктивный текст на консоли следующим образом:
Изменить: см. Также Synchronous_AJAX и как это сделать с помощью jquery
источник
SCHEDULED_REQUEST
является объектом, который накапливает любую несрочную информацию, которая должна быть отправлена на сервер, например, буфер данных, эффективно объединяя несколько запросов в один (конечно, URL-адреса этих запросов одинаковы). Использование синхронного запроса Ajax перед выгрузкой должно решить проблему кроссбраузерности, как вы сказали. Спасибо за ценный комментарий!У меня есть пользователи, которые не заполняли все необходимые данные.
источник