在JavaScript中捕获popup窗口的closures事件

在popup窗口(使用window.open )closures之前,我需要执行一些操作。

有些事情会很好:

 var new_window = window.open('some url') new_window.onBeforeUnload = function(){ my code} 

我怎样才能做到这一点?

只要popup窗口url与父页面位于同一个域中,您的示例就会工作,并将事件更改为全部小写:

 var new_window = window.open('some url') new_window.onbeforeunload = function(){ my code} 

事件名称是onbeforeunload而不是onBeforeUnload 。 JS是区分大小写的。

您需要将onbeforeunload事件绑定到打开后的窗口。

最简单的方法是在窗口源代码中使用JavaScript onbeforeunload代码。

有关详细的解释,请参阅这里和这里在Stackoverflow这两个非常类似的问题。

如上所述,打开后需要将onbeforeunload事件绑定到窗口。

请参阅其他线程中的示例: https : //stackoverflow.com/a/25989253/578275 。

 var new_window = window.open('some_url') 

你也可以检查new_window.window是否为null 。 但是你需要用setTimeout或者setInterval函数手动检查它。

这是顺便说一句,当你不在同一个域名时,如何检查它。