Christian Michel: Fenster -> Frame in anderem Fenster

Leider habe ich derzeit gerade ein Problem:

Ich habe ein neues Fenster aus einem Frameset heraus geöffnet, in dem per PHP ein Wert ermittelt wird.
Diesen Wert möchte ich dann im Frameset in einem Frame wieder in einem Formular einem Textfeld zuweisen.

Wie bekomme ich es nun hin, dass er auf das andere Fenster/Frame verweist?

MfG

Christian Michel

  1. Hallo,

    Ich habe ein neues Fenster aus einem Frameset heraus geöffnet, in dem per PHP ein Wert ermittelt wird.
    Diesen Wert möchte ich dann im Frameset in einem Frame wieder in einem Formular einem Textfeld zuweisen.

    Wie bekomme ich es nun hin, dass er auf das andere Fenster/Frame verweist?

    Das Frame ist dem Browser egal (d.h. es macht keinen Unterchied, ob das Fenster von einem Frame aus oder von einer "Seite" aus geöffnet wird)

    Der JavaScript-Code sieht dann folgendermaßen aus:
    (im Mozilla 1.0rc1 (Linux und Windows) und IE 5.5 getestet)
    opener.document.forms['<formular_name>'].<feld>.value = wert

    Wichtig: Du musst dem Formular einen Namen geben, damit Du das Formular in JavaScript überhaupt verwenden kannst.

    Bsp:

    Seite, die das Fenster öffnet:
    ...
    <form name="mein_formular" ....>
    <input type="text" name="eingabe_feld" value="" size="30" maxlength="30" />
    </form>
    ...

    Seite, die im Fenster geöffnet wird:
    ...
    <input type="button" onClick="opener.document.forms['mein_formular'].eingabe_feld.value = wert;"  value="Übernehmen" />
    ...

    Grüße,

    Christian

  2. Hallo.

    Leider habe ich derzeit gerade ein Problem:

    Keine Begrüßung?

    Ich habe ein neues Fenster aus einem Frameset heraus geöffnet, in dem per PHP ein Wert ermittelt wird.
    Diesen Wert möchte ich dann im Frameset in einem Frame wieder in einem Formular einem Textfeld zuweisen.

    Wie bekomme ich es nun hin, dass er auf das andere Fenster/Frame verweist?

    Insofern das neue Fenster mit window.open() geöffnet wurde:

    opener.parent.FrameName.document...

    Gruß
    Norbert

    1. Hallo,

      Insofern das neue Fenster mit window.open() geöffnet wurde:

      opener.parent.FrameName.document...

      Aber opener bezwichnet doch das Fenster *oder den Frame*, der das neue Fenster geöffnet hat. (zumindest bei mir unter Mozilla und IE so); also nur opener.document...

      Also bei mir klappts so, wie ich vorher geantwortet habe.

      In SelfHTML steht dazu nur folgendes (aus http://selfhtml.teamone.de/javascript/objekte/window.htm#allgemeines):

      Genau so, wie Sie vom Hauptfenster auf ein mit open() erzeugtes Zweitfenster zugreifen können, können Sie von einem solchen Zweitfenster auf das Hauptfenster zugreifen. Dazu gibt es das Fenster-Objekt opener. Damit wird das Fenster angesprochen, von dem aus das aktuelle Fenster geöffnet wurde. Über das Objekt opener können Sie alle Eigenschaften und Methoden des öffnenden Fensters ansprechen.

      Grüße,

      Christian

      1. Ich grüße dich.

        Insofern das neue Fenster mit window.open() geöffnet wurde:

        opener.parent.FrameName.document...

        Aber opener bezwichnet doch das Fenster *oder den Frame*, der das neue Fenster geöffnet hat. (zumindest bei mir unter Mozilla und IE so); also nur opener.document...

        Sicherlich, geht das, ich konnte aus dem Satz "Diesen Wert möchte ich dann im Frameset in einem Frame wieder in einem Formular einem Textfeld zuweisen." nicht ersehen, ob er den selben Frame meint, oder einen anderen.

        Also bei mir klappts so, wie ich vorher geantwortet habe.

        Das bezweifelt niemand.

        Genau so, wie Sie vom Hauptfenster auf ein mit open() erzeugtes Zweitfenster zugreifen können, können Sie von einem solchen Zweitfenster auf das Hauptfenster zugreifen. Dazu gibt es das Fenster-Objekt opener. Damit wird das Fenster angesprochen, von dem aus das aktuelle Fenster geöffnet wurde. Über das Objekt opener können Sie alle Eigenschaften und Methoden des öffnenden Fensters ansprechen.

        Ist mir bekannt.

        Gruß
        Norbert