在这里,此 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 现在我将从 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();
}
我们需要将此代码放在需要禁用浏览器后退按钮的页面中