Проблема
Использование $(window).bind("beforeunload", ...[snip]
для запроса, хочет ли пользователь покинуть страницу, приводит к некоторым странным результатам в некоторых браузерах.Появится диалоговое окно с вопросом, хотите ли вы остаться на странице или покинуть страницу.Если вы щелкнете по опции «остаться на странице», Google Chrome (последняя версия - 13.0.782.215 м) и WinIE7 отобразят последнюю страницу истории в кнопке «Назад».
Чтобы проиллюстрировать этот момент, текущая история сеанса состоит изпосещение следующих страниц:
- Страница 3
- Страница 2
- Страница 1
Вы решаете покинуть страницу 3 и beforeunload
событие пожаров.Вы решаете остаться на текущей странице.
Вы снова нажимаете кнопку «Назад» и в этот раз решаете покинуть страницу.Вы должны оказаться на странице 2, но вместо этого вы находитесь на странице 1. Вы можете снова перейти к странице 2.
Вопрос
Как я могу предотвратитьбраузер убирает эти страницы с кнопки «Назад», когда мы выбираем «остаться на текущей странице»?Возможно ли это?
Пример проблемы
Используя Google Chrome, в новом окне перейдите на http://stackoverflow.com и просмотрите несколько вопросов, не переходяназад.Затем нажмите кнопку Задать вопрос.Начните вводить в диалоговом окне.Нажмите Назад в вашем браузере.Выберите остаться на странице.Снова нажмите обратно в браузере и на этот раз выберите опцию покинуть страницу.Теперь вы вернулись на две страницы истории.По сути, вы можете вернуться назад на несколько страниц, если нажмете остаться на странице более одного раза.
Почему это важно?!
Я не хочу путать своих пользователей,Они не относятся к компьютерным знаниям.
Мой код (не то, что он уместен)
$(window).bind("beforeunload", function(){
if (in_edit > 0){
return "You are currently editing this job.\n\nAre you sure you wish to exit the page?";
}
});