当我访问JavaScript变量window.history.length
时,我返回了窗口历史记录的大小。当我从一个页面向前导航到另一个页面然后导航到另一个页面时,window.history
的长度会增加。当我使用浏览器返回按钮返回历史记录时,window.history
的值不会减少,即使我正在回溯历史记录。这是为什么?
答案 0 :(得分:3)
将window.history
视为逻辑增长的列表或访问过的网页数组。最初,只有初始页面。向前导航时,会在列表末尾添加一个新条目,window.history.length
增加一个。当您返回页面时,列表不会删除您之前删除的条目。相反,它仍然存在,然后你有机会前进(回到你刚刚回来的页面)。
这意味着你不应该使用window.history
的长度来指示你从浏览会话开始的距离。例如,如果您的window.history.length
的值为5,那么不意味着如果您返回3页,则您将访问您访问的第2页。 window.history.length
表示您向前访问过的网页数量的长度,但没有说明您当前 在该列表中的位置。
如果在向后导航后,您访问的前向页面与前向链中的前一页不同,则列表将被更改,因此您现在无法转发访问条目的长度也会更改你以前从那里回来了。