문제 설명: 두 개의 페이지 A와 B가 있습니다. A에서 B로 점프할 때 페이지를 다시 게시하기 위한 어떤 작업도 수행하지 않고 JS:history.go(-1)를 사용하여 페이지로 돌아갈 수 있습니다. 페이지 A. 예를 들어 페이지 포스트백을 트리거하는 클릭, 변경 이벤트 등이 있습니다. 이때, History.go(-1)를 사용하면 페이지 A로 돌아가지 않습니다.
해결책: 페이지 포스트백 수 N을 기록한 다음, History.go(-n)를 사용하여 A 페이지로 돌아가는 방법을 찾아야 합니다.
포스트백 횟수를 기록하기 위해 페이지 B에 컨트롤을 넣습니다.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> >
<script> <br>function goto() { <br>var n=document.getElementById("TextBox1").value; <br>var n=Number(n) <br>history.go(-n) ; <br>} <br></script>
페이지 B의 내용은 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.
}
else
{
this.TextBox1.Text = Convert.ToString( Convert.ToInt16(this.TextBox1.Text) 1);
}
}
이런 식으로 어떤 작업을 수행하더라도 페이지 B에서 A부터 B까지 하면 페이지를 몇 번이나 게시했더라도 [돌아가기]를 클릭하면 페이지 A로 이동할 수 있습니다
소스코드 다운로드