Поиск в Поддержке

Избегайте мошенников, выдающих себя за службу поддержки. Мы никогда не попросим вас позвонить, отправить текстовое сообщение или поделиться личной информацией. Сообщайте о подозрительной активности, используя функцию «Пожаловаться».

Подробнее

How to access parent window in javascript when popup is in a different domain

  • 1 ответ
  • 8 имеют эту проблему
  • 71 просмотр
  • Последний ответ от Dyvik Chenna

more options

I have an html page in www.x.com domain that open a popup with window.open containing another page in www.y.com domain and i want these page to comunicate with window.postMessage, how can i access to parent page within the popup ? I tryed window.opener but it is undefined

I have an html page in www.x.com domain that open a popup with window.open containing another page in www.y.com domain and i want these page to comunicate with window.postMessage, how can i access to parent page within the popup ? I tryed window.opener but it is undefined

Выбранное решение

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/DOM/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(...);
 }

};

Прочитайте этот ответ в контексте 👍 1

Все ответы (1)

more options

Выбранное решение

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/DOM/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(...);
 }

};