Homepage de.comp.lang.javascript
Homepage
de.comp.lang.javascript

FAQ de.comp.lang.javascript

FAQ
de.comp.lang.javascript

 

 

Bitte verwenden Sie als Einstiegsadresse in diese FAQ die Homepage der Newsgroup de.comp.lang.javascript. Der Aufenthaltsort dieser Seiten hier kann sich ohne Vorwarnung ändern.
 

 

Wie kann ich auf Variablen und Objekte in einem anderen Fenster oder Frame zugreifen?

1. Fenster

1.1. im neu geöffenten Fenster

Es soll auf Variablen bzw. Objekte und deren Eigenschaften eines durch window.open() geöffneten Fensters zugegriffen werden. Eine Referenz auf das Fenster erhält man mit
   neuesFenster = window.open()

Beispiel:

Im Ursprungsfenster wird ein neues Fenster mit dem Namen "neues_Fenster" geöffnet:

   neues_Fenster = window.open('neu.html','');

Auszug aus neu.html:

   <form>
     <input type="Text" name="Textfeld" size=10 value="Javascript">
   </form name="Ein">
   <script language="Javascript" type="text/javascript">
     var a = 1000;
     var b = document.Ein.Textfeld.value;
   </script>

Zugriff vom Ursprungsfenster aus:

   <script language="Javascript" type="text/javascript">
     x = neues_Fenster.a;                           /* Variable a           */
     y = neues_Fenster.b;                           /* Variable b           */
     z = neues_Fenster.document.Ein.Textfeld.value; /* Objekt - Eigenschaft */
   </script>

Voraussetzung ist, daß das neue Fenster auch wirklich offen ist, und daß die Variablen und Objekte existieren - gegebenenfalls vor Funktionsaufruf abfragen.

1.2.  im öffnenden Fenster

Ab JavaScript 1.1 steht die Eigenschaft opener des Window-Objektes zur Verfügung, die eine Referenz auf öffnende Fenster enthält.

Für das Beispiel (s.1.1.) kann aus neues_Fenster auf eine im Ursprungsfenster definierte Variable Wert und den URL der dort geladenenen Datei (als Bsp. für eine Eigenschaft) mit

   neuer_Wert = opener.Wert;         /* Variable             */
   geladen = opener.document.URL;    /* Objekt - Eigenschaft */

zugegriffen werden.

Voraussetzung hier: das öffnende Fenster muß noch offen sein.

2. Frames

Die Frame-Struktur eines Fensters ist hierarchisch. Das heißt, auf jede in einem Frame definierte Vatriable und jede(s) Objekt/Eigenschaft kann von jedem Frame dieser Struktur aus zugegriffen werden.

Beispiel-Struktur:

top (=Browserfenster)  
 |   var zahl0 = 0;
 |                  +--Unter_Frame_1
 |                  | var zahl11 = 11;
 +---Haupt_Frame----|
 |   var zahl01 = 1;|
 |                  +--Unter_Frame_2
 |                   
 +---Auswahl_Frame

Das Prinzip des Zugriffs veranschaulichen folgende

ausgewählte Beispiele für Zugriffsmöglichkeiten:

­Variablen:
  für zahl0:
  top.zahl0von überall
  parent.zahl0von Haupt_Frame und Auswahl_Frame
  parent.parent.zahl0von Unter_Frame_1 und Unter_Frame_2
  für zahl01:
  top.Haupt_Frame.zahl01von überall
  parent.Haupt_Frame.zahl01von Auswahl_Frame
  parent.zahl01von Unter_Frame_1 und Unter_Frame_2
  für zahl11:
  top.Haupt_Frame.Unter_Frame_1.zahl11von überall
  self.Haupt_Frame.Unter_Frame_1.zahl11von top
­Objekte, Eigenschaften:
  für URL in Auswahl_Frame:
  top.Auswahl_Frame.document.URLvon überall
  parent.parent.Auswahl_Frame.document.URLvon Unter_Frame_1 und Unter_Frame_2
  für ein Image-Objekt in Unter_Frame_2:
  top.Haupt_Frame.Unter_Frame_2.document.images[3].srcvon überall

Anmerkung:
top - immer die oberste Ebene = Browserfenster
parent - immer relativ zum aktuellen Frame (self)

zum Referenzieren zwischen Windows und Frames s. auch
"Wie rufe ich eine Funktion auf, die in einem anderen Frame definiert ist?"
"Wie rufe ich eine Funktion auf, die in einem anderen Fenster definiert ist?"
top

Diese Seite ist Teil der de.comp.lang.javascript FAQ. Die Einstiegsadresse lautet http://www.dcljs.de/. Der Text der Seite wurde erstellt von Christine Kühnel (©).

 ______ letzte Änderung: 12/2012 ______ 

 
© S. Mintert, Ch. Kühnel