返回window.history.pushState之后的第一个状态
Go back to first state after window.history.pushState
当我在页面上打开弹出窗口时,我使用window.history.pushState
来更改当前URL,这很好用,也很方便。在弹出窗口中,我可以转到其他URL。问题是,当我关闭弹出窗口时,我会再次使用第一个URL的pushState,但如果按下,它会再次打开弹出窗口。
我想要的是,在关闭弹出窗口后按Back返回到打开弹出窗口前的上一页。
主页->页面->弹出菜单1->弹出菜单2->(关闭弹出菜单)页面->(按下返回)主页(而不是弹出菜单2)
我所做的是使用history.go(-x)
而不是pushState(originalURL)
。
主页->(正常导航)页面->(推送状态)弹出1->(推推送状态+增加弹出计数)弹出2->(关闭弹出+转到(-2))页面->
编辑
这样做之后,我发现大多数浏览器都有历史记录大小的限制(在chrome上是50)。因此,当从弹出窗口1移动到2时,我改为replaceState
。
主页->(正常导航)页面->(推送状态)弹出1->(替换状态)弹出2->(关闭弹出+转到(-1))页面->
这也将在按下时关闭弹出窗口。
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 字母计数:返回重复字母数最多的第一个单词
- 如何使用Javascript在HTML表中查找第一个空行
- 分页:如何用AJAX加载第一个页面
- 使第二个选项卡处于第一个活动状态
- 将焦点设置在带有错误消息的第一个输入元素上,并将包含它的 TabStrip 选项卡设置为活动状态
- 谷歌地图放置API V3自动完成 - 在输入时选择第一个选项(并使其保持这种状态)
- 试图让我的幻灯片插件无限循环(通过回到第一个状态)
- j查询手风琴 |打开页面加载和活动状态混淆的第一个元素
- 在同一元素上单击两次,然后在另一个元素上单击两次,使第一个元素进入“单击”状态
- 将活动状态添加到jCarousel Lite中的第一个项目
- 当第一个选项卡处于活动状态时,第二个选项卡不处于活动状态;不起作用
- 如果第一个下拉框中的某个选项处于选定状态,则创建第二个下拉框
- angular ui路由器的第一个状态具有“名称:”"`
- Angular UI Router只加载第一个声明的子状态
- 尝试从状态数组从索引进行拼接,但最终从第一个索引拼接到最后一个索引
- 返回window.history.pushState之后的第一个状态
- 如何使用javascript在photoshop中选择第一个历史状态
- 当点击第一个文本框's单选按钮时,第二个文本框应该处于非活动状态