Ich erhalte die folgende Fehlermeldung, wenn ich versuche, einen Hashwert für die übergeordnete URL von iframe festzulegen, die eine andere Domänen-URL enthält:
Unsicherer JavaScript-Versuch, auf Frame mit der URL "URL1" vom Frame mit der URL "URL2" zuzugreifen. Domänen, Protokolle und Ports müssen übereinstimmen.
Wie kann ich dieses Problem beheben?
Antworten:
Von einem untergeordneten Dokument unterschiedlicher Herkunft aus können Sie nicht auf die
location.hash
Eigenschaft des oberen Fensters zugreifen , sondern dielocation
Eigenschaft selbst festlegen .Dies bedeutet , dass da die oberen Fenster Lage ist
http://example.com/page/
, anstatt das zu tunSie müssen den Standort der Eltern kennen und tun
Da die Ressource nicht navigiert wird, funktioniert dies wie erwartet und ändert nur den Hash-Teil der URL.
Wenn Sie dies für die domänenübergreifende Kommunikation verwenden, würde ich empfehlen, stattdessen easyXDM zu verwenden.
quelle
Crossframe-Scripting ist nicht möglich, wenn die beiden Frames unterschiedliche Domänen haben -> Sicherheit.
Siehe dazu: http://javascript.about.com/od/reference/a/frame3.htm
Um Ihre Frage zu beantworten: Es gibt keine Lösung oder Problemumgehung. Sie sollten einfach Ihr Website-Design überprüfen, warum es zwei Frames aus verschiedenen Domänen geben muss, die die URL der anderen ändern.
quelle
Ich habe die gleiche Fehlermeldung erhalten, als ich versucht habe, die Domain für iframe.src zu ändern.
Für mich bestand die Antwort darin, die Datei iframe.src in eine URL in der gleichen Domain zu ändern, die jedoch eine HTML-Umleitungsseite zur gewünschten Domain war. Die andere Domain wurde dann fehlerfrei in meinem Iframe angezeigt.
Lief wie am Schnürchen. :) :)
quelle
Eine Lösung könnte darin bestehen, eine lokale Datei zu verwenden, die den Remote-Inhalt abruft
remoteInclude.php
Der HTML
quelle
Ich habe festgestellt, dass die Verwendung der XFBML-Version des Facebook-Like-Buttons anstelle der HTML5-Version dieses Problem behoben hat. Fügen Sie den folgenden Code hinzu, an dem die Schaltfläche angezeigt werden soll:
Fügen Sie dies dann Ihrem HTML-Tag hinzu:
quelle
Das Problem besteht darin, dass selbst wenn Sie einen Proxy erstellen oder den Inhalt laden und wie lokal einfügen, alle von diesem Inhalt definierten Skripts aus der anderen Domäne geladen werden und domänenübergreifende Probleme verursachen.
quelle