我需要在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页面中的提交按钮时,任何人都可以知道如何禁用浏览器后退按钮
答案 0 :(得分:3)
它不起作用,因为点击它会在导航之前运行 - 所以它会转到不存在的“前进”页面。
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?"
}
但这不能强迫用户。你永远不能强迫用户不要回去。否则,这可能会导致严重的安全问题。
答案 1 :(得分:1)
不要这样做。强烈建议您不要破坏后退按钮的功能。
答案 2 :(得分:0)
您无法禁用浏览器后退按钮。不是通过JavaScript,或其他任何东西。在服务器端,您可以跟踪是否已按下提交按钮并相应地采取措施。
答案 3 :(得分:0)
您无法禁用浏览器后退按钮。
您提供的代码段不会“禁用”后退按钮。我不相信你明白它的作用。
它的作用:
在脚本代码中,模拟“前进按钮”(window.history.forward()
)上的点击。如果用户只需按下后退按钮,这可能会让我们回到原来的位置。
加载页面时(以前的hack不起作用),页面从历史记录缓存(event.persisted
)加载,然后模拟前进按钮上的单击。
在任何时候都没有禁用后退按钮。相反,您所做的就是编写一个页面,打破跟随页面的后退行为。
您可能希望改为使用onbeforeunload事件。