2

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

   function preventBack(){window.history.forward();}

    setTimeout("preventBack()", 0);

    window.onunload=function(){null};

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

4

2 回答 2

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="">
于 2013-04-18T19:36:01.860 回答
1

您无法检测到用户是否本机单击了“返回”按钮。你得到的理由

此文件已过期

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

但是,如果您仍然坚持这种方法,则可以使用此插件当检测到后退点击时,只需重定向到错误页面。(喜欢window.location = '/path/to/error/page.html'

于 2013-04-18T20:33:53.583 回答