JavaScript 对象历史记录如何将 URL 存储到其堆栈中?



我在window.history对象中有此历史记录日志,其中 5 作为我的当前页面。

5) http://myapp.com/great-new-story/01242020.html
4) http://myapp.com/great-new-story/01052020.html
3) http://myapp.com/great-new-story/12012019.html
2) http://myapp.com/allnews.html
1) http://myapp.com

然后我想转到第allnews.html页(或第 2 页(,allnews.html会记录在第 6 页吗?

或者它不会被记录并使用(第 2 号(,因为 allnews 已经在堆栈中?

这是一个简单的实验:

  1. 计算历史记录的长度。

    window.history.length();    //4
    
  2. 往后退几步

    window.history.go(-2);
    
  3. 再次获取长度。它仍然是4!

答:

浏览历史不会增加深度。

AFAIK 它会推入一个新的,因为事实很简单,这也用于后退和前进导航按钮,所以应该是这样的,我也刚刚检查过它。 创建了一个新选项卡>打开 google.com 搜索了一些东西,基本上它重定向了,所以然后窗口.历史长度增加了, 然后在全能栏中.我写 google.com 搜索栏 - 窗口的长度再次增加。

正如我所说,它应该是用于后退和前向堆栈维护

谢谢你们的帮助,真的很感激:y::)

但是,我已经找到了问题的答案。 这是关于使用location.replace,而不是在重定向到站点时使用location.assign。 我发现location.replace——

从文档历史记录中删除当前文档的 URL, 这意味着无法使用"后退"按钮进行导航 返回到原始文档。

根据W3学校。这就是为什么我开始使用Location.assign,单击链接后,然后单击history.back,它重定向到正确的先前站点。

最新更新