window.onbeforeunload обрабатывает нормально и отменяет опции - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть функция window.onbeforeunload, которая генерирует сообщение по умолчанию «Вы уверены, что хотите отойти от этой страницы ....».Если мы нажимаем «ОК», мы перенаправляемся на новую ссылку, а если мы нажимаем «Отмена», мы перенаправляемся обратно на ту же страницу.

Я хочу сохранить некоторые данные со страницы, когда нажимаем «ОК»."и отойди от страницы.Как мы можем узнать, были ли нажаты кнопки «ОК» или «Отмена», затем вызвать событие и продолжить с опцией «ОК» / «Отмена».

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011
function leavePage() {
    //do your thing like saving the data in the session
    return "Some data entered may be lost."; //a text needs to be returned
}

window.onbeforeunload = leavePage;
0 голосов
/ 07 апреля 2011

Возможный подход также может заключаться в подключении к событию onunload, и если этот обработчик вызывается, вы знаете, что пользователь выбрал OK.

В onbeforeunload, установите тайм-аутобратный вызов, который вызывается спустя некоторое время (например, 1 секунда), и если он вызывается, пользователь мог выбрать Cancel.

Хотя не уверен, насколько это безопасно в отношении условий гонки.

0 голосов
/ 07 апреля 2011

Используете ли вы JavaScript-диалог подтверждения?

if(confirm("Are you sure you want to navigate away from this page....")) {
    // OK was pressed
} else {
    // Cancel was pressed
}
...