从子窗口重新加载父窗口

59 javascript jquery

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

Cha*_*ion 94

在这种情况下,不需要jQuery.

window.opener.location.reload(false);
Run Code Online (Sandbox Code Playgroud)

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

  • 它确实需要一个参数 - 你可以传入true来强制重载(即忽略缓存) (4认同)
  • 在 Chrome 中不起作用:未捕获类型错误:无法读取 null 的属性“位置” (2认同)

Jus*_*son 23

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

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


小智 10

parent.location.reload();
Run Code Online (Sandbox Code Playgroud)

这应该工作.


ARr*_*r0w 6

如果你想简单地重新加载子窗口的父窗口:下面的这一行代码就足够了。

opener.location.reload(); 
Run Code Online (Sandbox Code Playgroud)

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

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";
}
Run Code Online (Sandbox Code Playgroud)

opener.location.reload();在上面的例子中不是必需的。


Raj*_*mar 5

这对我有用:

  window.opener.location.reload()
  window.close();
Run Code Online (Sandbox Code Playgroud)

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