我有一个窗口example.com/welcome.php
。使用window.open(abcd.php,"mywindow","...")
我打开abcd.php
在新窗口
通过使用abcd.php
中的window.close()
。我关闭abcd.php
。当abcd.php
关闭时,我如何触发welcome.php
中的一些动作,
您可以使用onunload
事件附加到打开的窗口;
var w = open('stackoverflow.com');
w.onunload = (ev) => {
console.log('unload', ev);
};
//w.close();
设置unload
甚至在load
事件,以防止不必要的触发unload
在窗口打开,至少发生在我的铬。
var w = open('https://stackoverflow.com/users/8424614/unnamedxaer');
w.onload = () => {
w.onunload = (ev) => {
console.log('unload', ev);
};
};
更新2
url必须在相同的域工作,否则你会得到一个错误,当试图将事件附加到打开的窗口(w
)(设置调试器与onunload
行),他们也必须从相同类型的服务器服务-而不是当浏览器中的url看起来像这样时,可以像文件一样访问c:/my-site/welcome.php
.
这是一个工作示例。打开CodeSandbox位于浏览器部分下方窗口底部的控制台,查看输出。