Window.opener - null после перенаправления

Я открываю окно paypal от родителя с window.open(). После оплаты и перенаправления на мою страницу (во всплывающем окне) я хотел бы закрыть всплывающее окно и обновить URL-адрес родительского окна.

Я выяснил, что это работает над window.opener.location.

Однако консоль показывает

window.opener.location имеет значение null

после перенаправления, поскольку по мере изменения дочернего окна всплывающее окно теряет информацию об открытии.

Хорошо. Теперь можно ли обойти это? Может быть, добавить родителя, который прослушивает URL-адрес дочернего элемента своего "слушателя"?

Ответ 1

window.opener удаляется всякий раз, когда вы переходите к другому хосту (по соображениям безопасности), его нет. Единственный вариант - это делать платеж в кадре, если это возможно. Верхний документ должен оставаться на том же хосте.

Ответ 2

Сначала вы можете иметь функцию таймера в родительских окнах, чтобы проверить, открыто или закрыто дочернее окно в определенный промежуток времени, например, 100 мсек. Если он закрыт, вы можете перезагрузить родительское окно.

Ответ 3

Проблема с window.opener в IE заключается в том, что вы используете сайт localhost и интернет-сайт, например paypal. Просто измените местоположение локального хоста из локальной интрасети в зону Интернета, и новичок не будет пустым.