我有一个搜索航班的页面。如果用户在浏览器中单击了后退按钮,它应该会显示一条错误消息。我尝试了以下代码: -
function preventBack(){window.history.forward();}
setTimeout("preventBack()", 0);
window.onunload=function(){null};
问题是它没有重定向到显示“此文档已过期”的页面。
我有一个搜索航班的页面。如果用户在浏览器中单击了后退按钮,它应该会显示一条错误消息。我尝试了以下代码: -
function preventBack(){window.history.forward();}
setTimeout("preventBack()", 0);
window.onunload=function(){null};
问题是它没有重定向到显示“此文档已过期”的页面。
你可以试试这个:
$(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="">
您无法检测到用户是否本机单击了“返回”按钮。你得到的理由
此文件已过期
是您在前一页上一次又一次地发送新表格。这是您架构中的一个很大缺陷。
但是,如果您仍然坚持这种方法,则可以使用此插件。当检测到后退点击时,只需重定向到错误页面。(喜欢window.location = '/path/to/error/page.html'
)