ign*_*-me 2 javascript browser-history angular
我有一个相当具体的用例。
想象一下我从页面 A导航到页面 B(添加一个历史状态)。然后,在页面 B 上,我通过打开模式与该页面进行交互。但模式的实现方式是单击浏览器后退按钮时关闭。
当模态打开时:
ngOnInit(): void {
history.pushState(null, null, this.pageBHomeUrl + "?modal");
}
Run Code Online (Sandbox Code Playgroud)
当它关闭时,模态状态将替换为之前的主页 url:
close(): void {
history.replaceState(null, null, this.pageBHomeUrl);
}
Run Code Online (Sandbox Code Playgroud)
当我关闭模式时,我的浏览器历史记录如下所示(最近的在前)
但是,我想确保可以关闭模式,同时将页面 A 保留为最新的历史状态...有没有办法删除 pageBHomeUrl 历史状态或向前移动 pageA 状态?或者使用后退按钮关闭模式而不更改历史状态?
当您从 A 导航到 B 时,您的历史记录如下所示:
当您打开模式并调用 时pushState,您的历史记录将如下所示:
然后,当您使用按钮并调用 关闭模式时replaceState,您的历史记录将如下所示:
这不是你想要的。而不是在处理程序中replaceState使用来从模式返回到所需的历史记录:popStateclose
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |