Как управлять кнопкой браузера назад - PullRequest
0 голосов
/ 26 мая 2009

Мне нужно окно подтверждения при нажатии кнопки возврата браузера. Если я нажму да, тогда предыдущая страница загрузится, иначе я останусь на той же странице?

Любое предложение высоко ценится .. Но, пожалуйста, будьте на ходу .. мой вопрос прост

спасибо заранее ..

Ответы [ 3 ]

4 голосов
/ 26 мая 2009

Почему вы хотите это сделать?

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

Как правило, вы должны использовать событие unload в теле (например, в jQuery, просто добавьте

jQuery(window).unload(function(evt){
   if(!confirm('Do you really want to leave')){
      evt.preventDefault();
   }});

У прототипа есть нечто подобное, и для чистого Javascript, я думаю, это все еще зависит от браузера, который вы используете, но window.unload = function(evt){return false;} может работать

Хотя не помню правильный синтаксис для него.

но я не знаю, можете ли вы ограничить это только для спины или он будет срабатывать для всех выгрузок (например, нажав на ссылку, закрыв браузер и т.

Если вы хотите остановить их, потому что они могут содержать несохраненные данные в форме, тогда это нормально. Если вы хотите помешать им вернуться по другой причине, я думаю, вы должны переосмыслить почему.

1 голос
/ 26 мая 2009

Как правило, если использование кнопки «Назад» может вызвать проблемы, у вас уже есть более серьезные проблемы.

Что вы, вероятно, хотите сделать, это проверить, что вы делаете такие вещи:

  • Использовать POST для всех запросов, которые изменяют данные
  • Используйте nonce's (уникальный идентификатор), чтобы формы не отправлялись дважды
0 голосов
/ 12 февраля 2011

Я использую noscript именно по этой причине. Я настаиваю на том, чтобы контролировать мой браузер, а не сайт, который я посещаю. Я разрешаю скрипты только для определенных сайтов. Для любого сайта, который отключает мою кнопку "Назад", я не позволяю ему запускать скрипты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...