删除包含页面的 iframe 时不会触发 onbeforeunload

onbeforeunload not fired when the iframe containing the page is removed

我有一个网页 Page1,它定义了一个有效的 onbeforeunload 事件,我在其中进行了一些提取。此 Page1 加载到另一个 domain.

iframe1

问题:当 iframe1 是 DOM 的 removed 时,我的 Page1 beforeunload 事件不是根本没有开火。

我现在正在本地尝试使用这些文件:

page1.html:

<script>
window.onbeforeunload = () => {
  console.log('Page1 unloaded')
}
</script>

parent.html:

<div>
    <iframe id='page1' src='./page1.html' ></iframe>
</div>
<button onclick="document.getElementById('page1').remove()" >Remove</button>

问题:如何触发 Page1unload 事件?

提前致谢。

window.onbeforeunload = function(e) {
var dialogText = 'Dialog text here';
e.returnValue = dialogText;
return console.log(dialogText);
};

当您单击 link 或关闭 window 时,您会在控制台中看到 dialogText

最后,我结束了在后端设置 websocket。我在 nodejs env 上,我使用 socket.io.