ここで、この JavaScript 機能はすべてのブラウザーで機能し、ユーザーがブラウザーの戻るボタンを押して前のページに戻るのを防ぎます。JavaScript コードの下にチェックを入れます。
<script type="text/javascript" language="javascript">
function DisableBackButton() {
window.history.forward()
}
DisableBackButton();
window.onload = DisableBackButton;
window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
window.onunload = function() { void (0) }
</script>
ユーザーがブラウザーの戻るボタンを使用して別のページに戻るのを防ぐ必要がある場合は、ページのヘッダー セクションに上記のスクリプトを配置する必要があります。
ここでは、Defaul1.aspx と Default2.aspx の 2 つのページがある例を使用して、要件を説明します。次に、Default1.aspx ページから Defaul2.aspx ページにリダイレクトします。Defaul1.aspx ページから Default2.aspx に移動した後、Defaul2.aspx から Default1.aspx ページに戻ろうとすると、ユーザーが前のページ (Defaul1.aspx) に戻らないようにする必要があります。この機能を実現するには、必要なページのヘッダー セクションで JavaScript 関数の上に配置します。
JavaScript 機能をページに追加すると、コードは次のようになります
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Disable Browser Back buttons</title>
<script type="text/javascript" language="javascript">
function DisableBackButton() {
window.history.forward()
}
DisableBackButton();
window.onload = DisableBackButton;
window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
window.onunload = function() { void (0) }
</script>
</head>
<body >
<form id="form1" runat="server">
<div>
First Page
</div>
<div>
<asp:Button id="btnFirst" runat="server" Text="Go to First Page" PostBackUrl="~/Default.aspx" />
<asp:Button ID="btnSecond" runat="server" Text="Go to Second Page" PostBackUrl="~/Default2.aspx" />
<asp:Button ID="btnThree" runat="server" Text="Go to Third Page" PostBackUrl="~/Default3.aspx" />
</div>
</form>
</body>
</html>
これは、コード ビハインドでブラウザのキャッシュを無効にすることでも実現できます。Page_Init イベントまたは Page_Load イベントに次のコード行を記述し、System.Web を使用して名前空間を追加することを忘れないでください。HttpCacheability がその名前空間に関連しているためです。
protected void Page_Init(object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
}
ブラウザの戻るボタンを無効にする必要があるページにこのコードを配置する必要があります