This question already has answers here:
How to clear browsing history using JavaScript?

(7个答案)


5年前关闭。




我正在一个项目中有很多pf页面。

我的页面结构如下:
登录>>仪表板>>添加>>查看>>编辑等...
我面临的问题是:
如果单击了后退按钮,然后又在登录页面上,那么如果我单击了后退按钮,它将再次重定向到仪表板页面。

我想要的是:
我想清除浏览器的历史记录,或者如果我从登录页面按返回按钮,则不应从登录页面转到仪表板页面。

我尝试了很多代码片段,所有在登录页面中添加的代码:
其中一些如下:

JavaScript代码:
1)

var Backlen=history.length;
history.go(-Backlen);
window.location.href=contextPath + "login.jsp";


2)

function preventBack(){window.history.forward();}
setTimeout(preventBack(), 0);
window.onunload=function(){null};


3)

function disableBack() { window.history.forward() }
window.onload = disableBack();
window.onpageshow = function(evt) { if (evt.persisted) disableBack() }


还使用以下代码尝试了Java代码以及已清除的会话:

<%
String forwardUrl = "";
if(sessionTimeout!=null)
{
request.setAttribute("timeoutMessage", sessionTimeout);
forwardUrl="login.jsp?locale="+locale+"&timeoutMessage="+sessionTimeout;
}else
{
forwardUrl="login.jsp?locale="+locale;
request.getSession().removeAttribute(sessionTimeout);
}
%>

最佳答案

正如MDN Window.history()描述的那样:


对于顶级页面,您可以查看会话中的页面列表
历史记录,可通过浏览器的下拉菜单中的“历史记录”对象访问
前进和后退按钮旁边。

出于安全原因,History对象不允许
非特权代码以访问会话中其他页面的URL
历史记录,但它确实允许它浏览会话历史记录。

无法清除会话历史记录或禁用
无特权代码的后退/前进导航。最接近的可用
解决方案是location.replace()方法,该方法将替换当前的
提供的网址的会话历史记录项。

关于java - 单击浏览器的后退按钮时清除历史记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26800164/

10-13 07:38