-1

我需要在 html 页面中单击提交按钮时禁用浏览器后退按钮,以确保进程没有终止。

这是在浏览器中禁用后退按钮的代码,但它仅在 onload 事件中工作。当我试图在 onclick 事件中使用它时,它不会工作。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>New event</title>
</head>
<SCRIPT type="text/javascript">
window.history.forward();
function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
onpageshow="if (event.persisted) noBack();" onunload="">
<a href='page2.html' >Page 2</a>
</body>
</html>

任何人都可以知道如何在我单击 html 页面中的提交按钮时禁用浏览器后退按钮

4

4 回答 4

3

它不起作用,因为单击时,它将在导航之前运行-因此它将转到不存在的“前进”页面。

采用onbeforeunload

var submitFlag=false;
//set submitFlag to true on onclick of submit button
window.onbeforeunload=function(e){ 
 if(submitFlag){
  return false;
 }
 return "Are you sure you want to leave?"

 }

但是,这不能强迫用户。你永远不能强迫用户不要回去。否则,这可能会导致重大的安全问题。

于 2012-05-02T12:21:28.523 回答
1

不要这样做。强烈建议您不要破坏后退按钮的功能。

请参阅禁用浏览器上的后退按钮

于 2012-05-02T12:19:36.017 回答
0

您不能禁用浏览器后退按钮。不是通过 JavaScript 或其他任何东西。在服务器端,您可以跟踪是否已按下提交按钮并采取相应措施。

于 2012-05-02T12:20:22.657 回答
0

您不能禁用浏览器的后退按钮。

您提供的代码段不会“禁用”后退按钮。我不相信你明白它的作用。

它能做什么:

  1. 在脚本标签中,模拟单击“前进按钮”(window.history.forward())。如果用户只是按下后退按钮,这可能会将我们带回到原来的位置。

  2. 当页面被加载(所以之前的 hack 不起作用),并且页面是从历史缓存(event.persisted)中加载的,然后模拟点击前进按钮。

在任何时候都没有禁用后退按钮。相反,您所做的是编写一个打破下一页的后退行为页面。

您可能想改用onbeforeunload事件。

于 2012-05-02T12:23:49.030 回答