Javascript 清理窗口。在用户手动退出窗口后打开变量

Javascript 清理窗口。在用户手动退出窗口后打开变量,javascript,Javascript,在我的应用程序中,当用户单击按钮时,我会打开一个窗口: myWindow = window.open('http://www.google.com') 当我处理完myWindow后,我会清理环境,以便后续单击同一按钮将打开一个新窗口(如果我不这样做,则后续单击不会执行任何操作): 如果用户手动退出窗口,是否可以关闭然后从环境中删除myWindow?如果他们现在这样做,后续的单击将不会执行任何操作,除非刷新页面 当窗口跨越域(,)时,“beforeunload”事件似乎不起作用 但是,这似乎检测

在我的应用程序中,当用户单击按钮时,我会打开一个窗口:

myWindow = window.open('http://www.google.com')
当我处理完
myWindow
后,我会清理环境,以便后续单击同一按钮将打开一个新窗口(如果我不这样做,则后续单击不会执行任何操作):

如果用户手动退出窗口,是否可以关闭然后从环境中删除
myWindow
?如果他们现在这样做,后续的单击将不会执行任何操作,除非刷新页面

当窗口跨越域(,)时,“beforeunload”事件似乎不起作用

但是,这似乎检测到该窗口已被用户关闭:

if (myWindow.closed) {
     delete window.myWindow;
}

将其包装在计时器中(如上面引用的第二个链接所示),它似乎可以解决问题

beforeunload事件可用于通过window.opener属性向调用窗口发回消息(首先检查它是否仍然存在)。然后,调用窗口可以自己进行清理,但是它不需要发出
myWindow.close()
,因为这已经在进行中。
if (myWindow.closed) {
     delete window.myWindow;
}