如何使用javascript控制浏览器按钮?

时间:2012-05-02 12:14:11

标签: javascript

我需要在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 个答案:

答案 0 :(得分: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?"

 }

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

答案 1 :(得分:1)

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

请参阅Disabling Back button on the browser

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您无法禁用浏览器后退按钮。

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

它的作用:

  1. 在脚本代码中,模拟“前进按钮”(window.history.forward())上的点击。如果用户只需按下后退按钮,这可能会让我们回到原来的位置。

  2. 加载页面时(以前的hack不起作用),页面从历史记录缓存(event.persisted)加载,然后模拟前进按钮上的单击。

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

    您可能希望改为使用onbeforeunload事件。