Я только узнал, что window.opener
недоступен в окне, открывшемся через window.open
, если новый URL-адрес является междоменным, в IE. Как обнаружить открыватель окна в IE
Это произойдет, если окно запустится в моем домене, покинет его, а затем вернется в мой домен. Я пытаюсь получить социальную регистрацию (facebook, google и т.д.) Во всплывающем окне. Когда он завершится, он должен закрыть новое окно и перенаправить открыватель.
Я знаю, что Soundcloud снимает это, но я понятия не имею, как это сделать. Я вижу изменение URL от их к Facebook, а затем закрываю.
После перенаправления на мой сайт с третьего лица я запустил это:
var data = {
type : 'complete',
destination : '<?= $destination; ?>'
};
if ( window.opener ) {
window.opener.postMessage( JSON.stringify( data ), '*' );
window.close();
}
else {
alert( "Unable to find window" );
}
Он оповещает об этом в IE, хотя изначально был мой домен, который затем перенаправлялся в FB, а затем перенаправлялся ко мне. Я думал, может, так как я открываю свой сайт и сразу перенаправляюсь с PHP, что может быть проблемой. Однако даже когда я открыл свой сайт, window.location.href = 'facebookssite.com'
он все еще жаловался при возврате.
Примечание
Социальные регистрации не работают для google, FB и т.д. внутри iframe
. Я считаю, что они запрещают их по соображениям безопасности.