Javascript 父窗口如何知道其子窗口已关闭?

Javascript 父窗口如何知道其子窗口已关闭?,javascript,dom-events,yui,Javascript,Dom Events,Yui,我想在打开的子窗口关闭时执行一个函数。子窗口打开代码为: outWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=600, height=400, top=100, left=100); 我想调用在父窗口中编写的Javascript函数。我正在

我想在打开的子窗口关闭时执行一个函数。子窗口打开代码为:

outWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=600, height=400, top=100, left=100);
我想调用在父窗口中编写的Javascript函数。我正在使用YUI-2开发插件。
我怎样才能让它工作?应该注册什么事件?

您可以通过以下方式尝试访问父窗口:

window.opener.functionThatYouWant();
此代码位于de子窗口内

但是,如果您打开的窗口显示URL位于另一个域(而不是本地主机)中,则由于安全问题,您无法访问它


我在Firefox上使用了这段代码,我不确定它是否能跨浏览器工作。

您可以这样做

var intervalID, childWindow;

childWindow = window.open("http://www.google.com");

function checkWindow() {
    if (childWindow && childWindow.closed) {
        window.clearInterval(intervalID);
        alert('closed');
    }
}
var intervalID = window.setInterval(checkWindow, 500);
参考资料:还有这个


上的简单示例。

它在Safari中运行良好,但在chrome中似乎不起作用。是的,似乎有这个问题。但是下面这个标记的答案似乎更好,而且是交叉的,也试试看。我不明白为什么奥皮亚佐的答案在这里被标记为正确答案。根据OP中描述的要求,这是正确的处理方法。另请参阅-