Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get access from cross-site popup to window.opener?

Tags:

javascript

I've making a widget and I need to redirect a parent window to certain url, after specific event in popup, whitch base on another domain. How a can do this.

window.opener.location.replace(url);
like image 395
NiLL Avatar asked Nov 15 '11 18:11

NiLL


1 Answers

You just cannot do that. Cross-site scripting is not allowed in most browsers.

You can, however, communicate with the other window via cross-document messaging described here: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

The most you can to is to send a message from the popup to the opener and listen for such message in the opener. The opener then has to change its location on its own.

// popup:
window.opener.postMessage('replace your location', '*');

// opener:
window.onmessage = function (e) {
  if (e.data === 'replace your location') {
    window.location.replace(...);
  }
};
like image 78
J. K. Avatar answered Oct 12 '22 07:10

J. K.