Wie komme ich um die domänenübergreifende Sicherheit von window.opener herum?

Das habe ich gerade herausgefundenwindow.opener ist in einem über geöffneten Fenster nicht verfügbarwindow.open Wenn die neue URL domänenübergreifend ist, in IE.Wie erkenne ich Fensteröffner im IE

Dies passiert, wenn das Fenster in meiner Domain startet, es verlässt und dann zu meiner Domain zurückkehrt. Ich versuche eine soziale Anmeldung (Facebook, Google usw.) im Popup zu haben. Wenn es abgeschlossen ist, sollte es das neue Fenster schließen und den Öffner umleiten.

Ich weiß, dass Soundcloud das schafft, aber ich habe keine Ahnung, wie. Ich sehe, wie sich die URL von ihrer zu Facebook ändert und dann schließt.

Nachdem ich von einem Drittanbieter zu meiner Site zurückgeleitet habe, führe ich Folgendes aus:

var data = {
  type : 'complete',
  destination : '<?= $destination; ?>'
};
if ( window.opener ) {
  window.opener.postMessage( JSON.stringify( data ), '*' );
  window.close();
}
else {
  alert( "Unable to find window" );
}

Es warnt im IE, obwohl das Fenster ursprünglich meine Domain war, die dann zu FB umgeleitet wurde und dann zurück zu mir umgeleitet wurde. Ich dachte, da ich meine Site öffne und sofort von PHP umleite, könnte das ein Problem sein. Aber auch als ich meine Seite geöffnet habe, hatwindow.location.href = 'facebookssite.com' Es hat sich immer noch bei der Rückkehr beschwert.

HINWEIS

Soziale Anmeldungen funktionieren nicht für Google, FB usw. innerhalb voniframe. Ich glaube, sie lassen sie aus Sicherheitsgründen nicht zu.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage