javascript代码在jsp中没有按预期工作

javascript code not working as expected inside jsp

本文关键字:工作 代码 jsp javascript      更新时间:2023-09-26

我正在尝试使用javascript阻止浏览器返回按钮。它在示例应用程序中运行良好,但当我将代码放入jsp文件中时,它并没有给出预期的行为,也不允许导航到主页。

这是javascript代码:

window.history.forward();
function noBack(){
      alert("back space code executed...");
      window.history.forward();
}

我在onLoad事件的标签内调用JSP中的上述代码:

<body class="jspcheck" onload="noBack()">

有趣的是,每当页面打开时,都会发出警报,但返回按钮并没有被禁用。

我也尝试过使用jquery调用这个函数,但没有得到预期的行为:

$(document).ready(function() {
     noBack();
});

如有任何帮助/建议,我们将不胜感激。

谢谢,Himanshu

您不能在web应用程序中阻止后退按钮,句号。但我可以想象,如果有人点击返回,您试图这样做是为了防止某些sql更新语句再次运行。防止这种情况的正确方法是在数据库更新后始终使用服务器端语言重定向到另一个页面。然后,当用户点击返回时,重定向总是会阻止他们返回到进行更新的页面。

 response.sendRedirect("somepage.jsp");

此外,由于您的服务器端代码无论如何都会在任何javascript之前执行,因此如果您需要防止这种事情发生,javascript是不好的。