防止在刷新页面上多次单击返回导航

时间:2018-07-02 14:40:42

标签: javascript html ajax html5-history

我已使用有效的window.history.go()方法转到上一页按钮。

问题:重新加载页面后,我需要多次单击按钮才能转到上一页。

那么如何防止多次单击“后退”按钮再次单击首次单击?

使用history.pushState()window.onpopevent()方法创建本文:https://www.safaribooksonline.com/library/view/javascript-cookbook/9781449390211/ch20s04.html,这可以解决吗?

以及如何在我的代码中实现?

代码

HTML:

<div id="goToPreviousPage">
   <a href="#"></a>
</div>

JS:

const goBackButton = document.querySelector("#goToPreviousPage");

goBackButton.onclick = function(e) {
   window.history.go(-2);
}

在重新加载页面后,使用window.onbeforeunload方法的返回按钮可以正常工作,但是在正常状态下,不重新加载页面的返回按钮将无法导航:

goBackButton.onclick = function(e) {
   window.onbeforeunload = function(event)
      {
        return confirm("Confirm refresh");
      }; 
   window.history.go(-4);
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是您的href =“#”在单击时会将当前页面添加到历史记录中。尝试在函数中添加以下内容,以防止链接出现默认行为。

e.preventDefault()