Запретить использование кнопки «Назад» (в IE) - PullRequest
12 голосов
/ 10 сентября 2008

Таким образом, МСП в моем текущем месте работы хотят попробовать отключить кнопку возврата для определенных страниц. У нас есть страница, где пользователь делает некоторые выборы и отправляет их на обработку. В некоторых случаях они должны ввести комментарий на другой странице.

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

Я знаю, что есть несколько различных решений для этого (и многие из них гораздо более элегантны, чем отключение кнопки возврата), но это то, что я оставил. Можно ли помешать кому-либо вернуться на предыдущую страницу, изменив поведение кнопки «Назад». (как отправить -> вернуть ложную вещь).

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

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

Ответы [ 15 ]

0 голосов
/ 17 октября 2015

Я не вижу этого решения:

function removeBack(){
	window.location.hash="nbb";
	window.location.hash="";
	window.onhashchange=function(){window.location.hash="";}
}
0 голосов
/ 02 июня 2015

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

  • Откройте ваше приложение в новом окне, либо до, либо сразу после входа в систему.
  • Если хотите, используйте параметры окна, чтобы скрыть панель навигации (с помощью кнопок назад и вперед).
  • Используйте AJAX для всех запросов к серверу без изменения URL-адреса расположения окна.
  • Используйте простой веб-API для получения данных и выполнения действий, а также визуализации приложения с помощью JavaScript.
  • В истории окна будет только один URL.
  • Кнопки «назад» и «вперед» ничего не сделают.
  • Окно может быть автоматически закрыто при выходе из системы.
  • Никакая информация не просочилась в историю браузера, что может помочь с безопасностью.

Эта техника отвечает на вопрос, но она также противоречит лучшей практике по нескольким причинам:

  • Кнопки «Назад» и «Вперед» должны работать должным образом.
  • Приложение не должно открывать новые окна браузера.
  • Приложение по-прежнему должно работать без JavaScript.

Пожалуйста, внимательно изучите ваши требования и пользователей перед использованием этой техники.

0 голосов
/ 29 июня 2012

Вы можете помешать им вернуться на предыдущую страницу. location.replace() заменяет запись истории текущей страницы новой страницей, поэтому ...

page1.html: пользователь нажимает ссылку, которая ведет на page2.html

page2.html: пользователь нажимает ссылку, которая вызывает location.replace('page3.html');

page3.html: пользователь нажимает кнопку «Назад» и переходит на страницу page1.html

.

Это может не подходить для выполнения POST, но вы можете отправить данные в веб-сервис через AJAX, а затем вызвать location.replace ()

0 голосов
/ 06 апреля 2009

КАК простое решение: попробуйте это. Вставьте туда панель обновления и кнопку и используйте javascript, чтобы скрыть ее, а затем нажмите ее при загрузке страницы. Да, я понимаю, что это приведет к тому, что ваша страница будет отправлена ​​обратно при загрузке, и может не сработать, если javascript отключен, но, безусловно, поможет вам добиться полу достойного ответа на проблему с кнопкой «Назад». Andy

0 голосов
/ 10 сентября 2008

Просто нет надежного способа сделать это. Вы не можете гарантировать, что в 100% случаев вы можете помешать пользователю сделать это.

Имея это в виду, стоит ли идти к крайне экзотическим решениям, чтобы отключить «большую часть времени»? Это вам решать.

Удачи.

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