gpt4 book ai didi

javascript - window.history.pushState 之后返回第一个状态

转载 作者:行者123 更新时间:2023-11-28 08:19:18 25 4
gpt4 key购买 nike

当我在页面上打开弹出窗口时,我使用window.history.pushState来更改当前URL,效果很好并且非常方便。在弹出窗口中我可以访问其他 URL。问题是,当我关闭弹出窗口时,我再次使用带有第一个 URL 的 PushState,但如果按回,它会再次打开弹出窗口。

我想要的是,关闭弹出窗口后按“后退”键会返回到打开弹出窗口之前的上一页。

主页 -> 页面 -> 弹出窗口 1 -> 弹出窗口 2 -> (关闭弹出窗口)页面 -> (按返回)主页(而不是弹出窗口 2)

最佳答案

我所做的是使用 history.go(-x) 而不是 pushState(originalURL)

主页 ->(正常导航)页面 ->(推送状态)弹出窗口 1 ->(推送状态 + 增加弹出窗口数量)弹出窗口 2 ->(关闭弹出窗口 + go(-2))页面 ->(按返回)主页

编辑

这样做之后,我发现大多数浏览器都有历史记录大小的限制(在 Chrome 上是 50)。因此,当从弹出窗口 1 移动到弹出窗口 2 时,我更改为 replaceState

主页 ->(正常导航)页面 ->(推送状态)弹出窗口 1 ->(替换状态)弹出窗口 2 ->(关闭弹出窗口 + go(-1))页面 ->(按返回)主页

按回键时,这也会关闭弹出窗口。

关于javascript - window.history.pushState 之后返回第一个状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23180645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com