gpt4 book ai didi

javascript - 有没有办法防止使用浏览器后退按钮离开网页?

转载 作者:行者123 更新时间:2023-11-30 15:42:06 25 4
gpt4 key购买 nike

1) 我正在尝试找到一种方法来在通过浏览器的后退按钮离开页面时显示确认弹出窗口。在这种情况下,卸载事件似乎不会触发。我正在使用 angular2。我尝试订阅所有导航事件:

this.router.events.pairwise().subscribe((e) => {
if (e[0] instanceof NavigationEnd && e[1] instanceof NavigationStart) {
console.log(e[0].id + " " + e[0].url + ", " + e[1].id + " " + e[1].url);
if (!this.whateverService.canNavigateAway) {
//var b = confirm("You have unsaved changes. Navigate away?");
}
}
});

但是我好像不能取消导航。

2) 如果无法用后退按钮取消导航离开,就会出现其他问题。如何区分后退和前进,或后退 3 页?那么最好知道在本地浏览器历史记录中被导航到和从中导航的页面的位置。例如,我想知道历史记录中总共有 7 页,我们正在从索引 5 处的页面导航到索引 4 处的页面。这样我就可以导航回我想要的位置而不会弄乱历史记录。

最佳答案

据我所知,除非像@keith 所建议的那样使用假 url,否则您无法控制它们。导航按钮存在于我们完全控制的范围之外,因为它们是浏览器本身的一部分而不是网页,因此它们不能根据我们的要求明确停止。这些是浏览器内置的东西,真的不应该被弄乱,因为你不想导致不可预测的行为。围绕这一事实开发您的应用程序比尝试与它抗争更为明智。

除此之外,您不想干扰浏览器。一旦你开始处理你没有明确创建或被授予访问权限的东西,你就跨越了一条线进入了假设的领域,这是一个非常危险的地方,我已经了解到。

如果您正在尝试保持一个有状态的系统,那么可以在后端以用户对用户的方式进行管理,这根本不会造成干扰,并且不会妨碍正常的浏览器操作,从而带来愉快的用户体验,

关于javascript - 有没有办法防止使用浏览器后退按钮离开网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636322/

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