【发布时间】:2020-05-21 17:26:31
【问题描述】:
我面临的问题是,当关闭一个 iframe 并再次打开另一个具有相同目的地的 iframe 时,sessionStorage 似乎仍然是从我打开的最后一个 iframe 填充的。我预计会话存储将被重置并重新开始。
我的 iframe 在它自己的组件中,我将其显示为模式弹出窗口。关闭模式时,我验证了 onDestroy 函数正在被调用,并且似乎组件正在被拆除,并且 iframe 应该从 DOM 中删除。
我还尝试通过 id 专门获取 iframe,并在 onDestroy 函数中将其从 parentNode 中删除,以防它没有被正确删除,但这仍然没有任何区别。
我还尝试使用 beforeunload 事件并在 iframe 中的页面关闭之前清除会话存储...但是当关闭包含 iframe 的对话框(组件)时,似乎没有触发事件或处理程序没有被触发。下面是我用来处理 beforeunload 事件的代码(角度):
@HostListener('window:beforeunload', ['$event'])
unloadNotification($event: any) {
console.log("unload event");
}
有什么方法可以在 iframe 关闭时强制清除会话存储?这是会话存储运行方式中的错误,还是使用会话存储时的预期行为?
【问题讨论】:
标签: javascript angular iframe session-storage