当单击后退按钮时,页面将过期

Expiring a page when back button is clicked

本文关键字:过期 单击 按钮      更新时间:2023-09-26

我有一个搜索航班的页面。如果用户在浏览器中单击了后退按钮,则应该显示一条错误消息。我尝试了以下代码:-

   function preventBack(){window.history.forward();}
    setTimeout("preventBack()", 0);
    window.onunload=function(){null};

问题是它没有重定向到"此文档已过期"的页面。

无法检测用户是否本机点击了"返回"按钮。你得到

的原因

此文件已过期

是在前一个页面上一次又一次地发送一个新表单。这是您的架构中的一个重大缺陷。

但是如果你仍然坚持这种方法,你可以使用这个插件。当反向单击检测到错误页面时,只需重定向到错误页面。(如window.location = '/path/to/error/page.html')

你可以试试:

$(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="">