我使用history.pushState来操作浏览器历史记录,有没有办法撤消/弹出特定的推送状态。
假设我来自google.com到myPage.com。在ajax调用后,我执行pushState,
window.history.pushState({}, "SUMMARY", "/summary.html");
现在经过一些更多的ajax调用之后,有没有办法删除之前的推送状态,所以后退按钮将我带到google.com而不是myPage.com
编辑:在第一次ajax调用后,我正在推送状态,以便我可以返回更早的状态,但是如果进行了另一个ajax调用,我想删除此功能。
答案 0 :(得分:0)
您可以使用replaceState
window.history.replaceState({}, "", "https://google.com");
答案 1 :(得分:0)
当您使用AJAX调用加载内容时,您可以使用pushState
而不是replaceState
。 replaceState
不会操纵浏览器的历史记录,它只是替换地址栏中的当前网址。点击后退按钮后,您会发现我们没有返回已更换的网址,而是您将返回之前我们所处的任何页面。
在您的情况下,您可以使用
window.history.replaceState({}, "SUMMARY", "/summary.html");