弹出推送历史状态history.pushState

时间:2017-12-26 07:07:29

标签: javascript browser-history pushstate

我使用history.pushState来操作浏览器历史记录,有没有办法撤消/弹出特定的推送状态。

假设我来自google.com到myPage.com。在ajax调用后,我执行pushState,

window.history.pushState({}, "SUMMARY", "/summary.html"); 

现在经过一些更多的ajax调用之后,有没有办法删除之前的推送状态,所以后退按钮将我带到google.com而不是myPage.com

编辑:在第一次ajax调用后,我正在推送状态,以便我可以返回更早的状态,但是如果进行了另一个ajax调用,我想删除此功能。

2 个答案:

答案 0 :(得分:0)

您可以使用replaceState

window.history.replaceState({}, "", "https://google.com"); 

答案 1 :(得分:0)

当您使用AJAX调用加载内容时,您可以使用pushState而不是replaceStatereplaceState不会操纵浏览器的历史记录,它只是替换地址栏中的当前网址。点击后退按钮后,您会发现我们没有返回已更换的网址,而是您将返回之前我们所处的任何页面。

在您的情况下,您可以使用

window.history.replaceState({}, "SUMMARY", "/summary.html");