首页 > 解决方案 > 如何通过按返回按钮来避免默认操作?

问题描述

如何通过按返回按钮来避免默认操作?

这是我的代码

@HostListener('window:popstate', ['$event'])
  onPopState(event) {
    this.open('ac');
  }

  open(form){
    if(form == 'ac'){
      this.router.navigate(['/']);
    }
     ...
  }

按后退按钮会将我带到上一页,而不是“this.router.navigate (['/']);”中分配的页面

标签: angular

解决方案


当用户浏览会话历史记录时活动历史记录条目发生更改时,会触发 Window 界面的 popstate 事件。它将当前历史条目更改为用户访问的最后一页的条目,或者,如果使用history.pushState() 将历史条目添加到历史堆栈,则使用该历史条目。
(如此处所述:https ://developer.mozilla.org/en-US/docs/Web/Events/popstate )。

因此,向历史堆栈添加历史条目将帮助您更改“返回”目的地。

解决方案:
假设我目前在“/page1”中,并且我想在按下后退按钮时导航到“/”。检查以下代码片段。

ngOnInit() {
  history.pushState( {} , 'page1', '/page1' );
  history.pushState( {} , 'home', '/' );
}

希望这可以帮助。


推荐阅读