Angular 当浏览器选项卡关闭时,如何清除会话存储?

Angular 当浏览器选项卡关闭时,如何清除会话存储?,angular,Angular,当我使用浏览器历史记录时,它会登录。当我在新选项卡中输入URL时,它将被重定向到登录页面。我已尝试通过浏览器选项卡关闭事件来清除会话 //1 @HostListener('窗口:卸载',['$event'])) // 2 @HostListener('窗口:在卸载之前') 但它的工作选项卡会关闭并刷新页面。我只需要关闭浏览器选项卡。如何实现它?您必须像这样实现OnDestroy接口 @Component({selector: 'your-cool-comp', template: `...`}

当我使用浏览器历史记录时,它会登录。当我在新选项卡中输入URL时,它将被重定向到登录页面。我已尝试通过浏览器选项卡关闭事件来清除会话

//1
@HostListener('窗口:卸载',['$event']))
// 2
@HostListener('窗口:在卸载之前')

但它的工作选项卡会关闭并刷新页面。我只需要关闭浏览器选项卡。如何实现它?

您必须像这样实现OnDestroy接口

@Component({selector: 'your-cool-comp', template: `...`})
class MyComponent implements OnDestroy {
  ngOnDestroy() {
    // your logic to clean up session
  }
}

在单击事件或销毁事件中编写此代码

if(windows.sessionStorage){
sessionStorage.clear();

}

当组件关闭时,您可以使用OnDestroy()事件。请给出任何示例。为什么要在关闭选项卡时清除会话存储?无论如何,当浏览器关闭时,会话存储将自行清除。但是,当我单击浏览器历史记录时,它会在sessionstorage中获取日志。
导出类AppComponent实现OnDestroy{ngondstroy():void{sessionstorage.clear();}}
不工作。我已经在app.component.ts中实现了。未触发浏览器选项卡关闭时。您能帮助我吗?会话相关数据是否存储在会话存储中而不是本地存储中?是的。。我使用会话存储。还有其他想法吗?谢谢,当我关闭浏览器时,它会调用函数,但当我刷新页面时,它会调用函数。你必须为例如clearSessionData()创建公共方法,你用这个方法编写上面的代码,这个方法是你在ngOninit()方法上调用的。
ngOninit(){this.clearSessionData();}clearSessionData(){if(window.sessionStorage){sessionStorage.clear();}}
它在页面上的工作刷新到我只需要关闭浏览器选项卡。有什么想法吗?是的。但是当我单击浏览器历史记录时,它会记录会话。