我有一个搜索航班的页面。如果用户单击了浏览器中的后退按钮,则应显示错误消息。我尝试了以下代码: -
function preventBack(){window.history.forward();}
setTimeout("preventBack()", 0);
window.onunload=function(){null};
问题是它没有重定向到“此文档已过期”的页面。
答案 0 :(得分:1)
你可以试试这个:
$(window).on('beforeunload', function () {
// Prevent back
alert('This document has been expired.');
window.history.forward();
});
此外,我们还有一个选项:
$(window).unload(function () {
// Prevent back
alert('This document has been expired.');
window.history.forward();
});
更新:
<script type="text/javascript">
window.history.forward();
function noBack() { window.history.forward(); }
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
答案 1 :(得分:1)
您无法检测用户是否本机点击了“后退”按钮。你得到的原因
此文件已过期
是您在上一页上重新发送新表单。这是您架构中的一个很大的缺陷。
但是,如果你仍然坚持这种做法,你可以使用this plugin。当后退点击检测到时,只需重定向到错误页面即可。 (如window.location = '/path/to/error/page.html'
)