Оповещение пользователя, когда он нажал кнопку «Назад» в браузере - по уважительной причине - PullRequest
10 голосов
/ 14 июня 2010

Я знаю, что здесь есть границы для табу, и, пожалуйста, не отвечайте "вы никогда не должны этого делать" и т. Д.

У меня очень длинная форма в мастере, и некоторые пользователи слишком привыкли использовать кнопки браузера «назад» и «вперед», чтобы использовать их вместо кнопок «Назад» и «Далее» в мастере форм. Если они нажмут кнопку «Назад» в браузере, они потеряют все данные формы (а это задница, потому что форма такая длинная).

Можно ли отобразить предупреждение о том, что когда будет кнопка «забрать меня отсюда» и кнопка «отмена», поэтому, если они нажмут кнопку «Отмена», функция кнопки «назад» будет отменена?

Ответы [ 2 ]

8 голосов
/ 14 июня 2010

Вы должны вернуть сообщение о событии onbeforeunload, например:

window.onbeforeunload = function() {
    return "Leaving this page will reset the wizard";
};

Обратите внимание, что это событие сработает, когда пользователь покинет страницу по любой причине, дажепосле завершения работы мастера.
Вы должны установить флаг после завершения работы мастера и не возвращать сообщение.

1 голос
/ 14 июня 2010

Вы можете использовать плагин jQuery BBQ, чтобы переписать функциональность кнопок «следующий» и «предыдущий», чтобы сделать его более простым и понятным при переходе по всему этому «волшебнику»немного сложен в настройке, взгляните на предоставленные примеры, если вам нужна та же функциональность.

Скорее всего, вам придется реорганизовать свой код, чтобы приспособиться, и это займет несколько часов.*

...