【翻译】父窗口关闭的时候子窗口也同时关闭
2008-07-08 13:19 Valens 阅读(625) 评论(0) 编辑 收藏 举报如何当父窗口关闭的时候子窗口也同时关闭呢?假如我是网站的使用者,我倒是不想父窗口关闭时会自动关闭所有的子窗口,因此我觉得上面的这个需求是奇怪的。
下面就是可以实现如标题所描述的代码。我想确保的是我所有已经打开的窗口之间的联系,然后当父窗口被关闭的时候,简单地使用一个循环这些子窗口,并关闭它们。
在父窗口的 body 标签内添加 "onunload" 事件。请注意当页面被刷新的时候会引发该事件。
<body onunload="closeChildWindows()">
<a href="#" onclick="openWindow('Pop1.aspx','Pop1')">Open Window 1</a>
<a href="#" onclick="openWindow('Pop2.aspx','Pop2')">Open Window 2</a>
<a href="#" onclick="openWindow('Pop1.aspx','Pop1')">Open Window 1</a>
<a href="#" onclick="openWindow('Pop2.aspx','Pop2')">Open Window 2</a>
<script language="javascript" type="text/javascript">
// create an array of child windows
var childWindows = new Array();
function openWindow(url,name)
{
newWindow = window.open(url,name,'width=100,height=100;dependent=yes');
// add the new child window in the collection
childWindows.push(newWindow);
}
function closeChildWindows()
{
if(!sure) return;
// iterate through the collection and close all the windows
for(i=0; i<childWindows.length; i++)
{
childWindows[i].close();
}
}
你还可以使用一个确认框来确定是否要关闭子窗口。提醒用户所有他/她可以选择是否将打开的子窗口都被关闭。