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