You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular应用退出前执行代码?解决未登出关闭存储问题

Angular页面关闭时写入localStorage问题解决
  • 修正事件名称:你之前绑定的UnloadHander不是标准浏览器事件,正确的页面卸载前事件是beforeunload,注意全小写,@HostListener的事件格式应为window:beforeunload。
  • 调整回调逻辑:localStorage.setItem是同步操作,直接执行即可,无需返回其结果(setItem返回undefined)。如果不需要触发浏览器的关闭确认弹窗,可省略返回值;若需要弹窗提示用户,需调用event.preventDefault()并返回非空字符串(符合浏览器规范)。

修正后的代码:

@HostListener('window:beforeunload', ['$event'])
beforeUnloadHandler(event: Event) {
  localStorage.setItem("theflag", "2");
  // 如需弹出关闭确认提示,保留以下两行;不需要则注释/删除
  event.preventDefault();
  return '';
}

额外说明:若遇到浏览器在页面卸载时忽略localStorage操作的极端情况,可考虑使用navigator.sendBeacon将数据发送到后端持久化,但仅针对本地存储需求的话,上述修正后的代码即可满足要求。

内容的提问来源于stack exchange,提问作者taleen wahdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:33:14