从子窗口重新加载父窗口

时间:2009-08-23 07:39:25

标签: javascript jquery

如何使用jQuery重新加载子窗口的父级?

12 个答案:

答案 0 :(得分:90)

在这种情况下不需要jQuery。

window.opener.location.reload(false);

https://developer.mozilla.org/en-US/docs/Web/API/Window

答案 1 :(得分:21)

您可以使用window.openerwindow.parentwindow.top来引用相关窗口。从那里,您只需调用reload方法(例如:window.parent.location.reload())。

但是,作为警告,如果您需要离开最初打开的页面,可能会遇到window.opener的问题,因为引用将丢失。

答案 2 :(得分:8)

parent.location.reload();

这应该有用。

答案 3 :(得分:2)

如果只想重新加载子窗口的父窗口: 只需下面的代码即可。

opener.location.reload(); 

如果要使用带有旧值或新值的查询字符串(请求)重新加载父窗口。以下代码将完成工作。

if (opener.location.href.indexOf('?') > 0) {
      var baseUrl = opener.location.href.substring(0, opener.location.href.indexOf('?'));
      opener.location.href = baseUrl + "?param1=abc&param2=123";
}
else {
      opener.location.href = opener.location.href + "?param1=abc&param2=123";
}

上面的示例中不需要此opener.location.reload();

答案 4 :(得分:2)

您可以使用以下方式重新加载父窗口位置:

window.opener.location.href = window.opener.location.href;

答案 5 :(得分:1)

  top.frames.location.reload(false);

答案 6 :(得分:1)

这对我有用:

  window.opener.location.reload()
  window.close();

在这种情况下,当前选项卡将关闭,父选项卡将刷新。

答案 7 :(得分:1)

这将适用于从子窗口刷新父窗口

window.opener.location.reload(true);

对于某些版本的IE,这将无法正常工作,因此您可以设置一些延迟时间

window.setTimeout(window.opener.location.reload(true), 3000);

答案 8 :(得分:0)

阻止重新提交以前的数据。在Firefox和Safari中测试过。

top.frames.location.href = top.frames.location.href;

答案 9 :(得分:0)

window.parent.opener.location.reload();

为我工作。

答案 10 :(得分:0)

这将起作用

window.location.assign(window.location.href);

答案 11 :(得分:0)

对于Atlassian Connect应用程序,请使用 AP.navigator.reload();

查看详细信息here