Отключение Кнопки "Назад" на [закрытом] браузере

31
задан SamB 4 May 2011 в 21:46
поделиться

8 ответов

Это не возможно, печально. Однако рассмотрите свою модель навигации заявлений. Вы - использование, Отправляют/Перенаправляют/Получают Модель PRG? http://en.wikipedia.org/wiki/Post/Redirect/Get ?

Эта модель является большим количеством кнопки "Назад", дружественной, чем модель Postback.

76
ответ дан 27 November 2019 в 21:25
поделиться

Вы не были должны.

Вы могли присоединить некоторый сценарий к onbeforeunload событию страницы и подтвердить с пользователем, это - то, что они хотят сделать; и можно пойти немного далее и , попытка к отключает его , но конечно который будет только работать на пользователей, которым включили JavaScript. Вместо этого взгляд на перезапись приложения, таким образом, Вы не фиксируете транзакции на каждой странице, отправляет, но только в конце процесса.

12
ответ дан 27 November 2019 в 21:25
поделиться

Я сильно убеждаю Вас перейти к героическим длинам для предотвращения повреждения кнопки "Назад", это - верный способ отчуждать пользователей и № 1, до которого даже добираются, на Лучшие 10 Ошибок веб-дизайна Jacob Neilsen в 1999 .

, Возможно, Вы могли считать довольно задающим вопрос: "Как постараться не повреждать кнопку "Назад" для < вставьте свой сценарий here>?"

, Если хиты ответа Scott близко к метке, рассмотрите изменение Вашего потока к модели PRG. Если это - что-то еще, то предоставьте немного больше подробную информацию и посмотрите, как мы можем помочь.

8
ответ дан 27 November 2019 в 21:25
поделиться

Наилучший вариант не состоит в том, чтобы зависеть от обратных передач к потоку управления, однако если Вы застреваете с ним (на данный момент)

, можно использовать что-то вроде этого:

  Response.Cache.SetCacheability(HttpCacheability.NoCache);
  Response.Cache.SetExpires(Now.AddSeconds(-1));
  Response.Cache.SetNoStore();
  Response.AppendHeader("Pragma", "no-cache");

Скоро Вы найдете, что это не будет работать над всеми браузерами, но затем можно представить регистрацию кода как:

 if (Page.IsPostBack)
 {
        if (pageIsExpired()){
           Response.Redirect("/Some_error_page.htm");
        }
        else {
           var now = Now;
           Session("TimeStamp") = now.ToString();
           ViewState("TimeStamp") = now.ToString();
        }

  private boolean pageIsExpired()
  {
     if (Session("TimeStamp") == null || ViewState("TimeStamp") == null)
        return false;

     if (Session("TimeStamp") == ViewState("TimeStamp"))
        return true;

        return false;
  }

, Который решит проблему некоторым, расширяются, Код, не проверенный - только на цели в качестве примера..

5
ответ дан 27 November 2019 в 21:25
поделиться

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

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

3
ответ дан 27 November 2019 в 21:25
поделиться

Вы могли отправить данные по каждой форме к _NEW окну. Это отключит кнопку "Назад" на каждом окне, но без JavaScript могло бы быть трудно вызвать старое закрытое.

0
ответ дан 27 November 2019 в 21:25
поделиться

4 Парня из Роллы написали эту статью об отключении кнопки "Назад" давным-давно (в галактике далеко далеко): http://www.4guysfromrolla.com/webtech/111500-1.shtml

0
ответ дан 27 November 2019 в 21:25
поделиться

Вот предыдущее сообщение на нем: Предотвращают Использование Кнопки "Назад" (в IE)

3
ответ дан 27 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: