Как изменить функциональность кнопки «Назад» браузера аналогично сайтам электронной коммерции в asp.net - PullRequest
8 голосов
/ 21 марта 2011

У меня есть веб-приложение, в котором должна быть настроена функциональность кнопки «Назад» браузера. Это похоже на то, что всякий раз, когда мы нажимаем кнопку «Назад» в браузере, он должен переходить на целевую страницу (страницу входа в систему). Он должен отображать сообщение об ошибке, в котором говорится, что «сеанс истек. Пожалуйста, войдите снова '.

Я просмотрел очень много постов, и даже в переполнении стека я видел несколько постов. Но у меня ничего не получалось. Подход Java-сценария, который я использую как временное решение. В основном этот JavaScript никогда не позволяет нам вернуться назад. вместо этого он будет держать нас на той же странице. JavaScript я использовал <script>history.go(1)</script>

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

Ответы [ 3 ]

11 голосов
/ 21 марта 2011

Краткий ответ: вы не можете
Немного дольше: вам даже не стоит пытаться.

Но если вы настаиваете: Тщательное изучение "Отключения кнопки" Назад ". (с 2000 года, но так как это ASP, я думаю, все еще действителен для вас:)

Более новая точечная сеть: Ограничить пользователя возвращаться на предыдущую страницу после выхода из системы

Игнорировать старые браузеры не поддерживают location.replace - IE3.2 больше не считается старше , кроме древних.

2 голосов
/ 21 марта 2011

Для этого вам понадобится специальное решение, и отключение кнопки возврата не поможет ...

Обычно вам не следует пытаться изменить поведение кнопки «назад». Но так как это требование, я бы предложил следующее:

Подход 1:

Это требует создания навигационной структуры, в которой вы знаете, какая страница является текущей в потоке ... Это возможно, только если у вас есть последовательность, в которой страницы будут вызываться (как в мастере)

Подход 2:

Конкретно для вашего случая: вы можете использовать jquery / javascript, чтобы определить, нажата ли кнопка «назад». Если это так, вы можете сделать ajax-вызов на сервер, чтобы завершить сеанс, а затем перенаправить пользователя на страницу входа.

0 голосов
/ 21 марта 2011

Вы можете программно управлять историей браузера, используя что-то вроде этого: window.history.back ();window.history.forward ();window.history.go (2);и т. д.

В современных браузерах, поддерживающих HTML5, таких как Chrome, вы также можете выполнять более сложные функции, включая полную перезапись кнопок «назад», используя методы history.pushState () и history.replaceState ().(https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)

Вы также можете испортиться и использовать вызовы javascript + ajax, чтобы реагировать конкретно на события кнопки назад, но это также не будет работать в некоторых браузерах. То, что вы спрашиваете, не является нативной частью Интернета, поэтому нетНеважно, что вы решите использовать в конце концов, это не будет очень легко или широко поддерживается.

...