【问题标题】:Why does the size of my window.history not decrease?为什么我的 window.history 的大小没有减小?
【发布时间】:2014-11-03 03:58:34
【问题描述】:

当我访问 JavaScript 变量 window.history.length 时,会返回我的窗口历史记录的大小。当我从一个页面向前导航到另一个页面,然后再导航到另一个页面时,window.history 的长度会增加。当我使用浏览器返回按钮返回历史记录时,window.history 的值不会减少,即使我正在返回历史记录。这是为什么呢?

【问题讨论】:

  • 如果您返回几个页面然后访问与以前不同的页面,它可能会减少。在 StackOverflow 上单击几下,然后检查长度。翻几页再检查长度,应该是一样的。点击不同的长度,它会变小。

标签: javascript browser-history


【解决方案1】:

window.history 视为逻辑增长的访问页面列表或数组。最初,只有初始页面。向前导航时,列表末尾会添加一个新条目,window.history.length 会增加 1。当您返回一个页面时,该列表没有删除了您之前所在的条目。相反,它会保留下来,然后您就有机会继续前进(回到您刚刚返回的页面)。

这意味着您不应该使用window.history 的长度作为您距离浏览会话开始多远的指标。例如,如果您的 window.history.length 的值为 5,那么 意味着如果您返回 3 个页面,您将在您访问的第 2 个页面。 window.history.length 表示您向前访问的页面数的长度,但没有说明您当前在该列表中的位置

如果在向后导航后,您访问的前向页面与前向链中的前一个页面不同,则列表将更改,长度也会更改,因为您现在无法再前向访问你以前从那里回来的。

【讨论】:

  • 那么你将如何检查你是否在堆栈的第一页?
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 2017-02-09
  • 2014-10-08
  • 1970-01-01
相关资源
最近更新 更多