单击后退按钮时页面到期

时间:2013-04-18 19:28:35

标签: javascript jquery

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

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

    setTimeout("preventBack()", 0);

    window.onunload=function(){null};

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

2 个答案:

答案 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'