Hallo vsyhh02!
ich will daten zwischen 2 fenstern austauschen, welche sich in einem frame befinden. in den beiden fenstern sind jedoch VERSCHIEDENE Domains geladen.
Das geht nicht, bzw. wenn es ginge wäre es eine Sicherheitslücke und damit browser(versions)abhängig.
Gruss,
Carsten
Hallo,
ich hab das mal probiert per Fenstername beschreiben und auslesen, Daten zwischen verschiedenen Domains auszutauschen, und siehe, es geht im IE und Netscape 4 (jedoch nur Zeichenketten ohne Leerzeichen und Klammern, etc, aber immerhin). Netscape 6 ist da resistent, aber prinzipiell ist es auch im Netscape 6 möglich, man kann nämlich in einen Frame window ResizeBy aufrufen und im anderen Frame die Größe auslesen, zugegeben, damit kann man keine großen Datenmengen austauschen, aber manchmal will man ja nur ein paar bits übertragen.
Im folgenden nochmal zum Nachvollziehen:
Auf meiner HP http://www.tu-chemnitz.de/~luta/codetest.html
aufrufen und die 3 Dateien (Frameset, oberer und unterer Frame)
lokal speichern, dann noch mal lokal aufrufen
oben: javascript anklicken, dann
parent.frames[1].location.href='http://www.tu-chemnitz.de/~luta/code_top.html'
eingeben und auf testen klicken
(unterer frame wird geladen)
unten: javascript anklicken, dann
alert(window.name)
eingeben und auf testen klicken
(alert leerer String)
oben
parent.frames[1].name="Datenuebertragung_per_Fenstername"
eingeben und auf testen klicken
unten auf testen klicken und ein alert ="Datenuebertragung_per_Fenstername" wird ausgegeben (IE und Netscape)
unten alert(window.innerHeight) eingeben und auf testen klicken,
Zahl merken
oben window.resizeBy(0,10) eingeben und auf testen klicken,
Frame-Aufteilung ändert sich, danach unten alert(window.innerHeight) eingeben auf testen klicken und
eine um 10 kleinere Zahl wird angezeigt (=übertragener Datenwert)
Praktisch könnte man das so realisieren, daß man einen Framebereich hat, mit Breite 0 (also unsichtbar), der nochmal unterteilt ist in 2 Frames, die zu unterschiedlichen Domains gehören, und dan per setTimeout(ResizeBy(...),100) im einen Frame die Frameaufteilung ändert (0 bis 255) und im zweiten Frame per setTimeout, welches höher getaktet ist guckt, ob sich window.innerHeight geändert hat, und diesen Wert auslesen. Macht eine Datenübertragungsrate von
80 bit pro Sekunde ;-)
Dann viel Spaß beim Basteln!
Gruß Lutz.