有这样一个需求:
很多页面通过统一一个入口打开同一个弹出窗口,而这些很多的父窗口页面在关闭时也需要将所其弹开的这一子窗口进行关闭。
分析:
1、在每个父窗口进行onunload事件的注册,同时用弹出窗的句柄对象进行关闭;
2、就在所弹开的这一页面中进行注册父窗口的onunload事件;
第一种方法虽然可行,但在每一个父窗口都必须进行相关事件的处理,两个字——麻烦。
第二种方法,若能实现的话是最好,这样所有弹出该窗口的父窗口就避免了一一去一段onunload事件的处理代码了。
第二种方法完整的实现代码如下:
// 记录父窗口的原有事件
var openerOnunload = opener.document.body.onunload;
// 注册新的事件
opener.document.body.onunload = function(){
if(typeof(openerOnunload) == 'object')
try{ openerOnunload(); } catch(e) {}
onClose();
}
// 若子窗口先关闭的话,再次激活父窗口的原有事件
window.onunload = function(){
try{
if(opener.document.body)
opener.document.body.onunload = openerOnunload;
}catch(e){}
}
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3563081