Andrea Stiegler: Ich kann nicht fensterln ... :-(

Hallo,

ich habe ein kleines Problem:

ein Framset   Frame A
              Frame B hat ein Inputfeld myINPUT

Nun öffne ich aus Frame B ein neues Fenster namens Test

Test soll nun in Frame B ein paar Input-felder füllen.

Meine Lösung window.opener.myInput.value="hallo" führt immer
wieder zur Fehlermedlung "Zugriff verweigert".

Wie kann ich das beheben?

Danke,

Andrea

  1. Hallo,

    Meine Lösung window.opener.myInput.value="hallo" führt immer wieder zur Fehlermedlung "Zugriff verweigert".

    ^^^ hier fehlt der Formularname.

    wenns dann auch nicht geht probiers mal mit parent.frameName.blabla

    HTH Markus

    --
    alles wird gut...
  2. Hallo Andrea,

    Du schreibst einmal myINPUT und einmal myInput - ich nehme an das ist ein Tippfehler und es heißt in beiden Fällen myInput (oder andersrum) - JavaScript ist ja case-sensitiv.

    Der eigentliche Fehler dürfte - wenn das so ist - hier liegen:

    window.opener.myInput.value="hallo"

    Um zu myInput zu gelangen, musst Du in der Objekthierarchie natürlich zuerst auf das Formular verweisen, also z.B.

    window.opener.forms[0].myInput.value="hallo"

    oder je nachdem wie die Form bei Dir heißt dann halt mit Namen.

    Grüße,

    Utz

  3. Hallo Andrea,

    ich weiß nicht, ob du mit den Hinweisen meiner Vorredner schon etwas anfangen konntest, aber ich möchte dich noch auf ein mögliches Problem hinweisen.

    Meine Lösung window.opener.myInput.value="hallo" führt immer
    wieder zur Fehlermedlung "Zugriff verweigert".

    Das bringt mich auf die Frage: Wo kommt der HTML-Inhalt des neuen Fensters "Test" her? Es ist nämlich in Javascript nicht erlaubt (und ergo i.d.R. auch nicht möglich), auf Fenster zuzugreifen, deren Inhalt von einer anderen Domain stammt. Auch dann nicht, wenn Frame B (in deinem Beispiel) das Fenster "Test" selbst geöffnet hat.

    Die Hinweise von Markus und Utz, dass scheinbar der Formularname fehlt, sind dagegen nur die halbe Wahrheit. Denn auch wenn man INPUT-Elemente normalerweise in einem Formular verwendet, ist das nicht zwingend nötig. Wenn man die Feldinhalte sowieso per Javascript auslesen oder setzen will, kann man die INPUT-Elemente auch ohne umschließendes FORM verwenden. Und falls du das getan hast, ist auch deine Adressierung vollkommen richtig.

    Weiter viel Erfolg beim Basteln,

    Martin