要在不触发'popstate'事件的情况下调用history.back()
,可以使用history.replaceState()
方法来修改浏览器历史记录,然后再调用history.back()
。
下面是一个示例代码:
function goBackWithoutPopstate() {
// 添加一个新的历史记录项
history.replaceState({ page: 1 }, "", "#");
// 调用history.back(),返回上一页
history.back();
}
// 在点击按钮时调用goBackWithoutPopstate()函数
document.getElementById("backButton").addEventListener("click", goBackWithoutPopstate);
在这个示例中,我们首先使用history.replaceState()
方法添加一个新的历史记录项,然后再调用history.back()
返回上一页。由于我们使用history.replaceState()
方法修改了历史记录,而不是添加新的记录,所以不会触发'popstate'事件。
注意:由于安全原因,浏览器限制对历史记录的访问。在某些情况下,可能无法使用history.replaceState()
方法来修改历史记录。
下一篇:不要处理已经存在的数据