문제

나는 응용 프로그램을 작성하는 경우에는 사용자가 돌아올 수 있고,다시 보내 같은 정보를 엉망으로 교류하고의 무결성 데이터입니다.비활성화하려면 어떻게 사용자를 위해 친구와 함께 시간을 보낼 수 있고 없이에서 자바스크립트?

도움이 되었습니까?

해결책

그것은 가능하지 않도 같은 지역에 있습니다.더 보기그러나,고려의 응용 프로그램은 탐색 모델.당신은 당신을 사용하여 포스트/Redirect/얻을 PRG 모델? http://en.wikipedia.org/wiki/Post/Redirect/Get?

이 모델은 더 버튼을 다시보다 친절 다시 게시 모델입니다.

다른 팁

당신이 안됩니다.

할 수 있습 몇 가지 스크립트를 onbeforeunload 이벤트의 페이지를 확인하는 사용자의 그들은 무엇을 원하는;고 갈 수 있는 조금 더고 하기 비활성화 하지만 물론 그만 사용자를 위해서 자바스크립트가 설정됩니다.대신에 보면서 다시 작성되지 않도록 앱을 commit 트랜잭션에서 각각의 페이지를 제출하지만,그만의 끝에서 처리합니다.

나는 강하게 당신을 촉구하는 이동하는 영웅적인 길이가 손상되지 않도록 하려면 뒤로 버튼을,그것은 확실한 방법은 멀리하는 사용자가 사용하는 1 야곱 Nielsen10 웹 디자인의 실수는 1999 년에.

아마도 고려할 수 있습니다 오히려 묻는 질문:"을 방지하는 방법을 깨고 다시 버튼 <insert your="" scenario="" here="">?"

는 경우 스콧의 대답을 안타까운 마크,고려한 변화의 흐름을 PRG 모델입니다.는 경우 다른 뭔가가 다음 줄을 조금 더 자세히고 우리가 어떻게 도움이 될 수 있습니다.

나는 작은 해킹 그 뒤로 버튼을 사용하지 않습니다 JavaScript.나는 그것을 확인에 크롬 10,파이어폭스 3.6 및 IE9:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<title>Untitled Page</title>
<script type = "text/javascript" >
function changeHashOnLoad() {
     window.location.href += "#";
     setTimeout("changeHashAgain()", "50"); 
}

function changeHashAgain() {
  window.location.href += "1";
}

var storedHash = window.location.hash;
window.setInterval(function () {
    if (window.location.hash != storedHash) {
         window.location.hash = storedHash;
    }
}, 50);


</script>
</head>
<body onload="changeHashOnLoad(); ">
Try to hit back!
</body>
</html>

최선의 선택에 달려 있지 않스트백을 제어하는 흐름은,그러나 당신이 붙어 있다면 그것(지금)

할 수 있습 다음과 같은 코드를 사용하면 됩니다:

  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 개 라인의 코드에 당신의 페이지

 <script>
window.location.hash="no-back-button";
window.location.hash="Again-no-back-button";//for google chrome
window.onhashchange=function(){window.location.hash="no-back-button";}
</script> 

대한 자세한 설명

여기 이전에 게시다:지의 사용시 버튼(IE)

당신이 무엇을 마련하는 것을 비활성화 뒤로 버튼을 멈추지 않을 수 있습니다 다시 버튼을 미래에 브라우저입니다.

면 늦게 개발 주기에서 나는 당신이 일부를 시도하고 제안했지만 당신이 얻을 때 당신은 구조의 흐름을 그래서 그 뒤로 버튼을 방해하지 않는 논리와 함께 귀하의 사이트,그것은 단순히 사용자는 이전 페이지로 돌아처럼 그들은 기대합니다.

그것은 사실,적절한 검증을 추가해야하는지 확인하는 중복 데이터 없이 엉망하는 것입니다.그러나 내 경우에 없어 데이터의 이후 나는 일부를 사용하여 타사 API 후기 내 형태입니다.그래서 사용

history.go(+1);

이 보낼 사용자가 기대하"영"이어 후"결제"페이지하려고 하면 다시 이동을 지불""page(그냥 지불을 위해 예).사용하지만,

게시할 수 있습 데이터에서는 각각의 양식을 _NEW 창입니다.이 설정에서 각 창이지만,자바 스크립트 없이 어려울 수 있습을 강제로 오래된 마감했다.

4 에서 사람들 롤라 쓴 이 문서에서 해제 버튼을 다시 시간이 오래 전(은하에서 멀리 멀리): http://www.4guysfromrolla.com/webtech/111500-1.shtml

할 수 있었을 사용하여 이 작업을 수행:

 Response.Cache.SetExpires(DateTime.MinValue);
 Response.Cache.SetNoStore();

사용할 때 나는 응답이다.캐시입니다.SetCacheability(HttpCacheability.NoCache);그것은 저를 방지에서 다운로드 사무실 파일이 있습니다.

아래 링크

사 브라우저의 뒤로 버튼을 사용하여 기능을 자바스크립트 asp.net |ASP.Net 사 브라우저의 뒤로 버튼을 사용하여(javascript)

http://www.aspdotnet-suresh.com/2011/11/disable-browser-back-button.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top