如何在JavaScript中关闭父窗口时关闭子窗口?
如果你指的是弹出窗口和打开它的窗口,你不能完全这样做,但是在主窗口中使用下面的脚本将在主窗口卸载时关闭弹出窗口(即关闭或用户导航到另一页或刷新):
var popUp = window.open("popup.html", "popup", "width=300,height=200");
window.onunload = function() {
if (popUp && !popUp.closed) {
popUp.close();
}
};
历史记录:在一些浏览器(如Firefox)中,可以通过使用window.open
调用的第三个参数中的dependent
窗口属性(例如var popUp = window.open("popup.html", "popup", "width=300,height=200,dependent");
)来实现此目的,但是根据quirksmode的说法,它已不再被任何浏览器支持。我自己没有测试过。
window.onunload = function closeChildWin(){
for(var i=0; i<childwindows.length; i++){
try{
childwindows[i].close()
}catch(e){
alert(e);
}
}
}
在创建弹出窗口时,我遇到了这个问题。在创建后访问窗口名称似乎没有任何作用。
首先创建一个窗口:
popup = window.open(address, name, params)
一开始我试图做这个:
window.onbeforeunload = function () {
popup.close()
}
但问题是创建后无法访问名称“popup”。我没有得到任何响应。
所以这就是我让它工作的方式。在弹出窗口的javascript中,我添加了:
window.parent.onbeforeunload = function () {
window.close()
}