跳过 history.state 并转到 previosu 页面



我正在研究另一个开发人员留下的东西,所以我不完全确定所有这些函数是如何工作的。因此,我正在使用history.pushState来保存一些值,以便能够预取我的一些数据。例如,我在我的状态中保存了pageNumber和productCount,以便以后可以使用它。

因此,在我使用它的视图中,控制台中的 history.state-log 可能如下所示:

init: null
pageNumber: 3
productCount: 150

因此,对于每个浏览器后退按钮,单击它都会删除此状态的一部分。因此,单击第一个后退按钮会将示例更改为

init: null
pageNumber: 3

下次点击:

init: null

下次点击:

null

所以,为了回到上一页,我需要点击我的按钮四次,因为我手动删除了每个状态,然后最后我又回到了。我想知道是否有办法删除浏览器后退按钮上的所有 history.state,单击并立即转到上一页?否则,我认为我可以重写所有这些代码以改用 localStorage,但我也认为使用历史记录 API 必须有一个原因。

所以,为了回到上一页,我需要点击我的按钮四次......

听起来问题不会再回去了,而是pushState了。您通过多次调用pushState来创建多个历史记录条目,因此您必须多次点击[返回]。

听起来至少其中一些应该是replaceState的,而不是pushState的,所以他们修改了当前的历史条目而不是创建一个新的条目。

最新更新