【问题标题】:Skip history.state and go to previosu page跳过 history.state 并转到上一页
【发布时间】:2017-08-24 10:04:40
【问题描述】:

我正在开发其他开发人员留下的东西,所以我不完全确定所有这些功能是如何工作的。所以,我使用 history.pushState 来保存一些值,以便能够预取我的一些数据。例如,我将 pageNumber 和 productCount 保存在我的状态中,以便以后使用。

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

init: null
pageNumber: 3
productCount: 150

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

init: null
pageNumber: 3

下一步点击:

init: null

下一步点击:

null

所以,为了回到上一页,我需要点击我的按钮四次,因为我手动删除了每个状态,最后我才返回。我想知道是否有一种方法可以删除浏览器后退按钮上的所有 history.state 并立即转到上一页?否则我想我可以重写所有这些代码以使用 localStorage,但我也认为使用 History API 一定是有原因的。

【问题讨论】:

  • 对我来说,这听起来像是对历史 API 的滥用,至少目前如此。 localStorage 听起来更合适,如果您所要做的只是存储一些值,但不以任何方式实际连接到用户在网站上的浏览路径...

标签: javascript jquery html5-history


【解决方案1】:

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

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

听起来至少其中一些应该是replaceState,而不是pushState,因此它们会修改当前的历史记录条目,而不是创建一个新条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2014-04-01
    • 2018-07-12
    • 2019-04-23
    • 2018-04-30
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多