Como faço para contornar a segurança de domínio cruzado window.opener
Acabei de descobrir quewindow.opener
não está disponível em uma janela aberta viawindow.open
se o novo URL for de domínio cruzado, no IE.Como faço para detectar o abridor de janelas no IE
Isso acontecerá se a janela iniciar no meu domínio, sair e voltar ao meu domínio. Eu estou tentando ter uma inscrição social (facebook, google, etc) no popup. Quando terminar, feche a nova janela e redirecione o abridor.
Eu sei que o Soundcloud está fazendo isso, mas não tenho ideia de como. Eu vejo o URL mudar do deles para o Facebook e feche.
Depois de redirecionar de volta para o meu site de terceiros eu corro isso:
var data = {
type : 'complete',
destination : '<?= $destination; ?>'
};
if ( window.opener ) {
window.opener.postMessage( JSON.stringify( data ), '*' );
window.close();
}
else {
alert( "Unable to find window" );
}
Ele alerta no IE, mesmo que a janela fosse originalmente meu domínio, que então foi redirecionado para o FB e depois redirecionado de volta para mim. Pensei em maio, pois abro meu site e redireciono imediatamente do PHP, o que pode ser um problema. No entanto, mesmo quando abri meu site, fizwindow.location.href = 'facebookssite.com'
ainda reclamava quando voltava.
NOTA
Inscrições sociais não funcionam para o Google, FB, etc dentro de umiframe
. Eu acredito que eles não os autorizam por razões de segurança.