我想在用户点击注销时禁用后退按钮我只删除该用户的cookie而不是我的应用程序中的会话。并且想要禁用后退按钮
if(getCookie('username') == ""){
Disable back button;// we use "window.history.redirect" for javascript i look jquery for this
}
请帮帮我..
答案 0 :(得分:19)
您必须在pushState中推送您的网址并清理浏览器历史记录:
试试这个:
$(document).ready(function() {
window.history.pushState(null, "", window.location.href);
window.onpopstate = function() {
window.history.pushState(null, "", window.location.href);
};
});
答案 1 :(得分:4)
<强> CODE:强>
<HTML>
<HEAD>
<SCRIPT type="text/javascript">
window.history.forward();
function noBack() {
window.history.forward();
}
</SCRIPT>
</HEAD>
<BODY onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
</BODY>
</HTML>
答案 2 :(得分:4)
var path = 'Test.aspx'; //write here name of your page
history.pushState(null, null, path + window.location.search);
window.addEventListener('popstate', function (event) {
history.pushState(null, null, path + window.location.search);
});
这适用于所有浏览器(&lt; IE10除外),即使网址附加了查询字符串。
为此你甚至不需要jquery。
看一下here,将其应用于您的网页。
答案 3 :(得分:4)
使用以下代码:
window.onload = function () {
if (typeof history.pushState === "function") {
history.pushState("jibberish", null, null);
window.onpopstate = function () {
history.pushState('newjibberish', null, null);
};
}
else {
var ignoreHashChange = true;
window.onhashchange = function () {
if (!ignoreHashChange) {
ignoreHashChange = true;
window.location.hash = Math.random();
}
else {
ignoreHashChange = false;
}
};
}
};
答案 4 :(得分:1)
这不是您的方法,但您可以使用普通的javascript禁用任何窗口的导航面板。只需将window.menubar
和window.toolbar
可见性设置为false
,如下所示,
window.menubar.visible = false ;
window.toolbar.visible = false ;
<强>更新强>
更改现有窗口的菜单栏和工具栏可见性似乎违反了安全协议。 (https://developer.mozilla.org/en/DOM/window.menubar)
因此,唯一真正的方法是首先打开一个新的窗口,菜单栏和工具栏设置为“否”:
window.open(url,name,"menubar=no,toolbar=no[, additional options]",true) ;
如果将replace参数(最后一个参数)设置为true,新窗口也应该继承它打开的窗口的历史记录。
检查https://developer.mozilla.org/en/DOM/window.open和http://msdn.microsoft.com/en-us/library/ms536651(VS.85).aspx以供参考。
答案 5 :(得分:0)
简单逻辑:向前点击时向前移动
function preventBack() {
window.history.forward();
}
window.onunload = function() {
null;
};
setTimeout("preventBack()", 0);
将此js代码保存在您的页面中。
答案 6 :(得分:0)
这将起作用,它对我有用,因为我正在处理移动浏览器,android和ios。
window.history.forward();
window.onload = function()
{
window.history.forward();
};
window.onunload = function() {
null;
};
答案 7 :(得分:0)
Sunil是正确的,但是要使用jQuery将下面的代码粘贴到您想要阻止返回的任何页面中。我在IE 11,chrome和FF中进行了测试,效果很好。
$(document).ready(function () {
function disableBack() {window.history.forward()}
window.onload = disableBack();
window.onpageshow = function (evt) {if (evt.persisted) disableBack()}
});
答案 8 :(得分:0)
可以通过向您的网页添加如下所示的内容来阻止用户访问受保护应用程序中的页面。
此处提供了使用 Apache Shiro 的完整示例:
https://github.com/NACHC-CAD/web-security-example/releases/tag/v2.0.0
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
<script>
if(performance.navigation.type == 2){
console.log("Doing reload");
location.reload(true);
console.log("Done with reload");
}
console.log("Script loaded.")
</script>