新しい URL がクロスドメインの場合、IE でwindow.opener
開いたウィンドウでは利用できないことがわかりました。IE でウィンドウ オープナーを検出する方法window.open
これは、ウィンドウが自分のドメインで開始され、そこから出て、自分のドメインに戻ってきた場合に発生します。ポップアップでソーシャル サインアップ (Facebook、Google など) を使用しようとしています。完了すると、新しいウィンドウが閉じられ、オープナーがリダイレクトされます。
Soundcloud がこれを実現していることは知っていますが、その方法がわかりません。URL が彼らの 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" );
}
ウィンドウが元々私のドメインであり、その後FBにリダイレクトされ、その後私にリダイレクトされたにもかかわらず、IEで警告が表示されます。サイトを開いてPHPからすぐにリダイレクトするので、問題になる可能性があると思いました。しかし、サイトを開いたときwindow.location.href = 'facebookssite.com'
でも、戻ったときにまだ文句を言いましたか。
ノート
内の Google、FB などでは、ソーシャル サインアップは機能しませんiframe
。セキュリティ上の理由から、彼らはそれらを許可していないと思います。