Есть ли способ получить результат диалогового окна подтверждения window.onbeforeunload
, подобного приведенному ниже из Stack Overflow (это происходит, когда вы покидаете страницу «Задать вопрос» без публикации вопроса)?
Вот как это выглядит в Chrome, я думаю, что в других браузерах это немного отличается, но у вас всегда есть какая-то форма кнопок да/нет.
Предположительно, если они все еще находятся на оскорбительной странице после того, как событие было запущено, они решили остаться, и вы, вероятно, могли бы понять это, просмотрев последовательность js. Однако я хотел бы знать, как определить, нажали ли они кнопку "Покинуть эту страницу"?
Я реализовал это, как показано ниже:
// concept taken from SO implementation
function setConfirmUnload(showMessage, message) {
window.onbeforeunload = showMessage ? (message ? message : "this is a default message") : null;
}
// pseudo code
listen to changes on inputs
if any inputs fire a change event
call setConfirmUnload(true, 'My warning message')
примечание Я использую jQuery на своем сайте.
По сути, я пытаюсь реализовать реализацию Gmail, подобную черновой реализации, в которой, если пользователь покидает страницу с формой, в которую он внес изменения, без сохранения, он нагревается с помощью аналогичного диалога. Если они решат отказаться от своих изменений и покинуть страницу, мне нужно очистить некоторые временные записи из базы данных (я думаю, вызов AJAX или просто отправить форму с флагом delete
), а затем отправить их по пути .
Мой вопрос также касается: