首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 5在单击后退按钮前阻止或警告用户

Angular 5在单击后退按钮前阻止或警告用户
EN

Stack Overflow用户
提问于 2018-09-10 07:47:38
回答 1查看 5.9K关注 0票数 2

所以我有一个内置在angular中的SPA应用程序,现在我的问题是,当用户在我的应用程序上时,如果他们按下(浏览器)后退按钮,有时如果数据是在前一页发送的,可能会导致错误,有时会出现刷新后消失的状态。现在有没有一种方法可以在返回之前警告用户,或者干脆不让用户返回??

我曾在我的index.html中尝试过这样做

代码语言:javascript
复制
<script>
    window.onbeforeunload = function() {
       return "Message";
    };
</script>

但它看起来不再适用于较新的浏览器,我发现了一个类似的问题here,但它来自几年前,我已经尝试了几个解决方案,但没有一个有效。

2018年处理这种情况的最佳方式是什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-05-24 18:37:06

您可以订阅路由器的事件属性(在Angular 8>中提供),它将在每个路由阶段触发一个操作,例如在导航开始、结束、onPopstate事件时...并且因此浏览器返回按钮事件。

代码语言:javascript
复制
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
    }
   });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52249511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档