1

我有一个父窗口(#1),它打开一个弹出子窗口(#2),然后打开一个弹出子窗口(#3)。当 (#3) 打开时, (#2) 由 self.close() 关闭。

我的问题是当我关闭时(#3)我如何刷新(#1)?我尝试了 window.opener.opener.reload(),但由于 (#2) 已经关闭,这不起作用。

4

2 回答 2

0

我不认为你能做到这一点。一旦 #2 窗口关闭,您将失去对它的引用,因此您无法引用它的开启器 (#1) 来刷新它。

但是,通过 Chrome 控制台中的快速测试判断,将窗口 #1 的引用传递给窗口 #3 文档,然后使用它重新加载它。它可能看起来像这样:

// in window #1 - opening window #2
var win2 = window.open('samedomainurl...');

// -----------------
// in window #2 (just opened)
// -----------------
// open window 3
var win3 = window.open('samedomainurl...');
// pass reference to window.opener (which is #1) to newly opened win3 document
win3.document.grandparentWindow = window.opener;

// -----------------
// in window #3 - after closing #2 you still can access #1 using document.grandparentWindow property
// -----------------
// reload original window
document.grandparentWindow.location.reload();
于 2012-12-17T10:51:20.297 回答
-1
window.parent.opener.location.reload();
于 2016-08-09T05:46:58.557 回答