弹出推送历史状态history.pushState

问题描述 投票:0回答:2

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

假设我来自google.com到myPage.com。在ajax调用之后我做了pushState,

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

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

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

javascript browser-history pushstate
2个回答
0
投票

你可以使用replaceState

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

0
投票

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

在你的情况下你可以使用

window.history.replaceState({}, "SUMMARY", "/summary.html"); 
© www.soinside.com 2019 - 2024. All rights reserved.