我想在打开的子窗口关闭时执行一个函数。子窗口打开代码是:
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来开发插件。 我怎样才能使它工作?应该注册什么事件?
提前感谢。
答案 0 :(得分:32)
你可以这样做。
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);
参考文献:window.setInterval和此answer。
jsfiddle上的简单示例。
答案 1 :(得分:5)
您可以尝试通过以下方式访问父窗口:
window.opener.functionThatYouWant();
此代码位于de子窗口内。
但是,如果您打开一个窗口,该URL位于另一个域(而不是localhost)中,则由于安全问题而无法访问它。
我在Firefox上使用了这个代码,我不确定它是否适用于crossbrowser。