新しいURLがIEでクロスドメインの場合は、window.open
で開いたウィンドウでwindow.opener
が利用できないことがわかりました。 How do I detect window opener in IEwindow.openerのクロスドメインセキュリティを回避する方法
これは、ウィンドウが自分のドメインで開始され、それを離してから、自分のドメインに戻った場合に発生します。ポップアップにソーシャルサインアップ(Facebook、Googleなど)をしようとしています。完了すると、新しいウィンドウを閉じてオープナーをリダイレクトする必要があります。
サウンドクラウドがこれを引き離していることは知っていますが、私はどのように考えているのでしょうか。私はFacebookからFacebookへのURLの変更を確認してから閉じる。
サードパーティから戻って自分のサイトにリダイレクトした後、私はこれを実行します。
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'
は戻ってきたときにそれでも苦情を言いました。
NOTE
社会の申し込みはiframe
以内にGoogle、FBなどには対応していません。私は彼らがセキュリティの理由からそれらを許可しないと信じています。あなたのiframeから
私はこの考えが好きです。私がオフィスに戻ったときに私はそれを撃つだろう。 –
@Noseratio:あなたのソリューションは、他のドメインのURLがウィンドウで開かれているとうまくいきますが、内部的にFacebookがユーザーを認証し、単にリダイレクトされたURLをウィンドウで開く状況に対処するためにコードを変更するにはどうすればいいですか?その場合、内部リダイレクションが発生しても、leftDomainフラグはfalseです。 –
@ dark_shadow、私はあなたにこれを別の質問として尋ね、これをこの質問にリンクすることをお勧めします。 – Noseratio