使用JavaScript从子窗口刷新父窗口

19

我正在新窗口中打开一个弹出页面。现在,当我从子窗口按下 HTML 输入按钮时,我想关闭这个子窗口,然后刷新父窗口。我应该如何使用 JavaScript 实现?

有人可以给我提供解决方案吗?

8个回答

32

尝试像这样做:

function closeAndRefresh(){
  opener.location.reload(); // or opener.location.href = opener.location.href;
  window.close(); // or self.close();
}

不客气。我在学习和使用JavaScript时也犯过同样的错误;) - oezi
非常感谢@oezi。在每天的错误中,我们都学到了新东西。 - Abhishek B.

4

你可以在子窗口中尝试这个:

function refreshParent() {
  window.opener.location.href = window.opener.location.href;

  if (window.opener.progressWindow)

 {
    window.opener.progressWindow.close()
  }
  window.close();
}

把DD改成勾勾怎么样,哈哈哈,太有趣了。 - Bastardo

3

我尝试编写代码

window.close();
if (window.opener && !window.opener.closed) {
      window.opener.location.reload();
 } 

正在运行中...


你应该删除这篇帖子,并通过编辑初始问题将信息添加到其中。答案是用来回答问题的,而不是提供额外信息的。 - oezi

2

window.location.reload(); 重新加载父窗口。


我认为它会关闭子窗口...也许你可以发布一个更完整的答案,并向OP解释它是如何工作的? - blurfus
@ochi 确实关闭了子窗口,这正是 OP 所寻求的。 - ahimmelstoss
如果您需要绕过缓存,这种方法会很有用:“默认情况下,reload() 方法从缓存重新加载页面,但是您可以通过将 forceGet 参数设置为 true 强制它从服务器重新加载页面:location.reload(true)。” [参考 https://www.w3schools.com/jsref/met_loc_reload.asp]。 - Zeek2

0
document.opener.document.location.href = document.opener.document.location.href

0

尝试一下这个简单的代码:

// parentPage.php is the parent page you want to redirect and refresh.
window.opener.location.href="parentPage.php";
self.close();

0

这个函数对我有用:

function closeAndRefresh(){
  opener.location.href = opener.location.href;
  window.close(); 
}

0

在iframe中使用按钮重新加载父窗口的正确表达式:

parent.location.reload();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接