需要完全阻止用户访问上一页。
当我使用以下代码时,它可以工作,但这不是我所需要的。按下后退按钮时显示“文件已过期”:
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
另一个想法 - 打开一个没有工具栏的新窗口:
<script>
function PopupWithoutToolbar(link) {
var w = window.open(link.href,
link.target || "_blank",
'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,dependent,width=800,height=620,left=0,top=0');
return w ? false : true;
}
</script>
<a href="http://www.google.com" onclick="return PopupWithoutToolbar(this)">yahoo</a>
但是,仍然......如果用户按下键盘上的退格键,他可以返回。似乎这种方法仅用于隐藏而不是禁用按钮。
有没有办法简单地忽略后退按钮?
答案 0 :(得分:2)
我不完全确定这是否有效,但您可以尝试使用javascript处理事件。
如果您想完全禁用退格按钮以允许用户返回,您可以这样做
$(window).on("keypress", function (e){
if(e.keycode == "backspace")
e.preventDefault();
})
我可以为你找出退格键码,但这并不难理解。这也使用jquery,但你可以只使用原始的javascript。只是不确定它会随便什么。
答案 1 :(得分:2)
我使用的解决方案略有不同:
history.pushState(null, null, location.href);
window.onpopstate = function () {
history.go(1);
}
答案 2 :(得分:1)
最简单的事情:
window.onhashchange = function (event) {
//blah blah blah
event.preventDefault();
return false;
}
您可以从那个(window.location)处理位置域等,然后在这种情况下取消该事件。
答案 3 :(得分:1)
根据你的帖子,听起来你唯一的问题就是禁止退格按钮允许用户返回。
这是我用jquery做的事情。仍然允许退格在启用的文本编辑输入中工作,它应该在哪里。
// Prevent the backspace key from navigating back.
$(document).unbind('keydown').bind('keydown', function (event) {
var doPrevent = false;
if (event.keyCode === 8) {
var d = event.srcElement || event.target;
if ((d.tagName.toUpperCase() === 'INPUT' && (d.type.toUpperCase() === 'TEXT' ||
d.type.toUpperCase() === 'PASSWORD' ||
d.type.toUpperCase() === 'FILE')) ||
d.tagName.toUpperCase() === 'TEXTAREA') {
doPrevent = d.readOnly || d.disabled;
}
else {
doPrevent = true;
}
}
if (doPrevent) {
event.preventDefault();
}
});
答案 4 :(得分:0)
要在浏览器中禁用后退按钮,可以在要禁用后退按钮的页面上的JavaScript中使用以下代码。
<script>
history.pushState(null, null, location.href);
window.onpopstate = function () {
history.go(1);
};
</script>