我正在开发一个有很多pf页面的项目..
我的网页结构如下: 登录>>仪表板>>添加>> view>>编辑等... 我面临的问题是: 如果我单击后退按钮并且我在登录页面上然后再次如果我单击后退按钮它将再次重定向到仪表板页面。
我想要的是: 我想清除浏览器历史记录,或者如果我从登录页面按下按钮,则不应该从登录页面转到仪表板页面。
我尝试了很多代码片段,我在登录页面中添加了所有代码: 其中一些如下:
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);
}
%>
答案 0 :(得分:0)
正如MDN Window.history()所描述的那样:
对于顶级页面,您可以看到会话中的页面列表 历史记录,可通过历史记录对象访问,在浏览器的下拉菜单中 在后退和前进按钮旁边。
出于安全原因,History对象不允许使用 用于访问会话中其他页面的URL的非特权代码 历史,但它确实允许它导航会话历史。
无法清除会话历史记录或禁用会话历史记录 从非特权代码返回/前进导航。最接近的 解决方案是location.replace()方法,它取代了当前的方法 具有提供的URL的会话历史记录的项目。