2009-07-17 9 views
1

Hier sind zwei Fälle: Versalien- als einer Domäne, während Kleinbuchstaben als ein anderes Fenster 1.Suppose A iframe b hält, und hält b iframe C, A & C in einer Domäne (höhere Privatsphäre), während b in einem anderen. Gibt es einen direkten Weg zur Kommunikation zwischen A & C, oneway oder twoway? 2.Suppose A hält Iframe b und Iframe c, A ist in einer Domäne, während B & C in anderen, genau die gleiche Frage wie im ersten Fall beschrieben.Nested iframe domänenübergreifende Kommunikation

ich wirklich deine Antwort zu schätzen weiß, wird es besser sein, wenn mit einigem Javascript-Codes Dank

Antwort

3

Keine. Die clientseitige Kommunikation zwischen Frames in verschiedenen Domänen ist aufgrund von the same origin policy nicht möglich. Wenn es möglich war, könnten Sie Dinge tun, wie das Laden einer Bankwebsite in einen Rahmen, der das gesamte Fenster ausfüllt, und das Abrufen, um festzustellen, ob der Benutzer irgendetwas in die Felder Benutzername und Passwort eingegeben hat.

Wenn Sie zwischen Domänen kommunizieren möchten, gibt es zwei Ansätze. Sie müssen eine HTTP-Anfrage stellen, um beide zu erreichen.

  1. übergeben Sie die Informationen in der URL, wenn die Seite geladen
  2. Informationen Laden ein <script> Element verwendet wird, jeder Code in der geladenen JS-Datei aus der Remote-Domäne auf der Seite mit dem <script> Elemente darin ausgeführt wird.

Sie können die beiden Ansätze kombinieren:

<script 
    type="text/javascript" 
    src="http://example.com/script.cgi?data=foo;more_data=bar"> 
</script> 

JSON-P See.

+2

Antwort ist veraltet, da postMessage API in den meisten gängigen Browsern unterstützt wird. – epascarello

7

Jawenn sie absichtlich zusammenarbeiten. HTML5 enthält die postMessage API für diesen Zweck, und es ist in IE8, FF3.5, Chrome, Opera, etc. implementiert. Für ältere Browser kann ein "Hack" namens Fragment Messaging verwendet werden. Wenn Sie Flash verwenden, können Sie lokale Flash-Kommunikationskanäle verwenden.

Verwandte Themen