所以我有一个内置在angular中的SPA应用程序,现在我的问题是,当用户在我的应用程序上时,如果他们按下(浏览器)后退按钮,有时如果数据是在前一页发送的,可能会导致错误,有时会出现刷新后消失的状态。现在有没有一种方法可以在返回之前警告用户,或者干脆不让用户返回??
我曾在我的index.html中尝试过这样做
<script>
window.onbeforeunload = function() {
return "Message";
};
</script>
但它看起来不再适用于较新的浏览器,我发现了一个类似的问题here,但它来自几年前,我已经尝试了几个解决方案,但没有一个有效。
2018年处理这种情况的最佳方式是什么?
谢谢
发布于 2021-05-24 18:37:06
您可以订阅路由器的事件属性(在Angular 8>中提供),它将在每个路由阶段触发一个操作,例如在导航开始、结束、onPopstate事件时...并且因此浏览器返回按钮事件。
import { Router } from '@angular/router';
constructor(private router: Router) {
this.router.events.subscribe((event) => {
if (event instanceof NavigationStart && event.navigationTrigger === 'popstate') {
// write the logic here
}
});
}
https://stackoverflow.com/questions/52249511
复制相似问题