Angular 5 - 浏览器关闭时清除 localStorage

Angular 5 - Clear localStorage when browser is closed

我正在为我的 Web 应用程序使用 Angular 5。我想在用户关闭浏览器时清除 localStorage 对象 window。

 @HostListener("window:beforeunload", ["$event"])
clearLocalStorage(event) {
    localStorage.clear();
    console.log('####Destroy local storage####');
}

由于应用程序中的 SSO 等其他逻辑,我无法将上述代码粘贴到主 app.component.ts 中。

有没有办法,我可以使用不同的方法在 angular 应用程序中全局执行此操作。

求推荐。

您可以改用 sessionStorage。

Session Storage

如果您使用您提到的方法。如果同时打开2个标签页,关闭一个标签页时,localStorage会被清空。

在您的情况下,本地存储不是一个好的选择。

本地存储 - 存储没有过期日期的数据,只能通过JavaScript或清除浏览器缓存/本地存储的数据来清除。

虽然 会话存储 - 仅为会话存储数据,这意味着数据会一直存储到浏览器(或选项卡)关闭。

因此,请根据您的目的使用会话存储。它会在浏览器关闭时自动清除。