当父应用程序标签关闭时,在iframe应用中触发卸载事件

问题描述

我有两个应用,App1和App2。 App2作为iframe嵌入在App1中,因此App1是嵌入App2的父级应用。 当用户从浏览器关闭App1时,我想在App2中触发一个api。 我尝试在App2中使用'unload'事件,但在App2关闭时不会触发(通过将调试器点放在事件侦听器函数上进行检查,该事件在独立的App2关闭时被调用)。 有没有办法做到这一点?谢谢

解决方法

从历史上看,尝试在卸载事件中发出异步请求从来都不可靠

因此创建了navigator.sendBeacon(url,data)

即使页面或标签消失了,它也可以在后台运行,并有助于解决使用卸载事件的许多可靠性问题。

使用sendBeacon()方法,当用户代理有机会这样做时,异步传输数据,而不会延迟卸载或下一次导航。

我从未在像您这样消失的iframe场景中使用过它,但相信它将解决您的问题