Это не возможно, печально. Однако рассмотрите свою модель навигации заявлений. Вы - использование, Отправляют/Перенаправляют/Получают Модель PRG? http://en.wikipedia.org/wiki/Post/Redirect/Get ?
Эта модель является большим количеством кнопки "Назад", дружественной, чем модель Postback.
Вы не были должны.
Вы могли присоединить некоторый сценарий к onbeforeunload событию страницы и подтвердить с пользователем, это - то, что они хотят сделать; и можно пойти немного далее и , попытка к отключает его , но конечно который будет только работать на пользователей, которым включили JavaScript. Вместо этого взгляд на перезапись приложения, таким образом, Вы не фиксируете транзакции на каждой странице, отправляет, но только в конце процесса.
Я сильно убеждаю Вас перейти к героическим длинам для предотвращения повреждения кнопки "Назад", это - верный способ отчуждать пользователей и № 1, до которого даже добираются, на Лучшие 10 Ошибок веб-дизайна Jacob Neilsen в 1999 .
, Возможно, Вы могли считать довольно задающим вопрос: "Как постараться не повреждать кнопку "Назад" для < вставьте свой сценарий here>?"
, Если хиты ответа Scott близко к метке, рассмотрите изменение Вашего потока к модели PRG. Если это - что-то еще, то предоставьте немного больше подробную информацию и посмотрите, как мы можем помочь.
Наилучший вариант не состоит в том, чтобы зависеть от обратных передач к потоку управления, однако если Вы застреваете с ним (на данный момент)
, можно использовать что-то вроде этого:
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;
}
, Который решит проблему некоторым, расширяются, Код, не проверенный - только на цели в качестве примера..
Независимо от того, что Вы придумываете для отключения кнопки "Назад", не мог бы остановить кнопку "Назад" в будущих браузерах.
, Если ее последнее в цикле разработки я предлагаю, Вы пробуете некоторые предложения выше, но когда Вы получаете время, необходимо структурировать поток так, чтобы кнопка "Назад" не вмешивалась в логику сайта, это просто забирает пользователя к предыдущей странице как, они ожидают, что это сделает.
Вы могли отправить данные по каждой форме к _NEW окну. Это отключит кнопку "Назад" на каждом окне, но без JavaScript могло бы быть трудно вызвать старое закрытое.
4 Парня из Роллы написали эту статью об отключении кнопки "Назад" давным-давно (в галактике далеко далеко): http://www.4guysfromrolla.com/webtech/111500-1.shtml
Вот предыдущее сообщение на нем: Предотвращают Использование Кнопки "Назад" (в IE)