66

How can I reload my child window's parent using jQuery?

Chris Forrence
  • 9,860
  • 11
  • 47
  • 62

12 Answers12

101

No jQuery is necessary in this situation.

window.opener.location.reload(false);

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

Travis
  • 11,301
  • 8
  • 38
  • 52
ChaosPandion
  • 75,687
  • 16
  • 116
  • 154
24

You can use window.opener, window.parent, or window.top to reference the window in question. From there, you just call the reload method (e.g.: window.parent.location.reload()).

However, as a caveat, you might have problems with window.opener if you need to navigate away from the originally opened page since the reference will be lost.

Justin Johnson
  • 30,312
  • 7
  • 62
  • 87
  • +1 The marked answer used window.opener (which I understand why that is the preferred way), but I only had luck w/ window.top – Rikon Jun 08 '12 at 15:39
  • 1
    If the child window was an iframe, you can use: window.parent.reload(); or window.parent.location.href='abc.html'; – shasi kanth Oct 16 '12 at 07:44
  • `reload()` is not a method of `window`. You mean `window.parent.loacation.reload()`, which I have in my answer. – Justin Johnson Oct 19 '12 at 01:37
16
parent.location.reload();

This should work.

Adem Büyük
  • 503
  • 6
  • 14
  • And set the optional parameter to true to bypass the browser cache. e.g. parent.location.reload(true); ref. https://www.w3schools.com/jsref/met_loc_reload.asp – Zeek2 Aug 02 '18 at 12:46
6

if you want to simply reload the parent window of child window: This line code below is enough for that.

opener.location.reload(); 

if you want to reload parent window with query string (request) with old or new values. Following code will do the work.

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";
}

this opener.location.reload(); is not required in above example.

ARr0w
  • 1,617
  • 13
  • 30
3

You can reload parent window location using :

window.opener.location.href = window.opener.location.href;
Raju Ram
  • 883
  • 9
  • 14
2
  top.frames.location.reload(false);
CG_DEV
  • 698
  • 7
  • 7
2

This working for me:

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

In this case Current tab will close and parent tab will refresh.

Rajesh Kumar
  • 552
  • 5
  • 20
1

Prevents previous data from been resubmitted. Tested in Firefox and Safari.

top.frames.location.href = top.frames.location.href;
CodeChap
  • 3,883
  • 6
  • 29
  • 40
1
window.parent.opener.location.reload();

worked for me.

vc 74
  • 35,902
  • 7
  • 66
  • 85
1

This will work for refresh parent window from child window

window.opener.location.reload(true);

for some version of IE this will not work so you can set some delay

window.setTimeout(window.opener.location.reload(true), 3000);
Ramin eghbalian
  • 1,825
  • 1
  • 13
  • 27
0

this will work

window.location.assign(window.location.href);
Avnish alok
  • 2,090
  • 20
  • 26
0

For Atlassian Connect Apps, use AP.navigator.reload();

See details here

LukeSolar
  • 3,697
  • 3
  • 26
  • 39