Thomas Monninger: Opener funktioniert nicht aus frame

Hallo,

Ich rufe über Javascript aus einem Frame ein Popupfenster auf (window.open(...)). Nun will ich aus dem Fenster über einen Link einen Text in eine Textarea des vorherigen Frames hinzufügen:

<script language="javascript">
<!--
function texten(dertext) {
 opener.document.gaestebuchform.kommentar.value += dertext+" ";
 opener.document.gaestebuchform.kommentar.focus();
 window.close();
}
//-->
</script>

Die Zielform heißt "gaestebuchform" und die Textarea heißt "Kommentar".
Das funktioniert allerdings nicht. Wenn ich es ohne Frame teste funktioniert es, was muss ich da ändern?

  1. Das funktioniert allerdings nicht. Wenn ich es ohne Frame teste funktioniert es, was muss ich da ändern?

    _Was_ hat wohl die opener-Eigenschaft, weil es geöffnet wurde?

    1. Es lag wohl doch nicht am Frame. Aber immer wenn ich das Skript lokal teste, geht es wunderbar und sobald ich es hochgeladen hab und teste macht es gar nichts mehr :-(.

      Ich kenne mich in Javascript nicht aus und weiß auch gar nicht genau, was die opener eigenschaft angibt.

  2. hallo thomas
    ...

    opener.document.gaestebuchform.kommentar.focus();

    ...

    Das funktioniert allerdings nicht. Wenn ich es ohne Frame teste funktioniert es, was muss ich da ändern?

    ...
    klar
    der pfad ist unvollständig für ein frameset
    versuche mal
    opener.[framename].form.feld.wert
    gruß
    qp

    1. Hallo,

      der pfad ist unvollständig für ein frameset
      versuche mal
      opener.[framename].form.feld.wert

      Das kann ich nicht nachvollziehen. In all meinen Tests verweist opener auf das window-Objekt des Frame-Dokuments, aus dem das Popup geöffnet wurde, nicht auf das window-Objekt des Frameset-Dokuments (das wäre wiederum opener.parent). Abgesehen davon würde document fehlen. opener.document.formularname.feldname.value/.focus() sollte prinzipiell funktionieren, der Fehler liegt wahrscheinlich woanders.

      Mathias

      1. Hallo,

        Das kann ich nicht nachvollziehen. In all meinen Tests verweist opener auf das window-Objekt des Frame-Dokuments, aus dem das Popup geöffnet wurde, nicht auf das window-Objekt des Frameset-Dokuments (das wäre wiederum opener.parent). Abgesehen davon würde document fehlen. opener.document.formularname.feldname.value/.focus() sollte prinzipiell funktionieren, der Fehler liegt wahrscheinlich woanders.

        War da nicht irgendwas mit Domainübergreifenden Restrikitven?
        hab schon lange keine Fenster mehr geöffnet :D
        Könnte es daran liegen? Anonsten das Problem mal eingrenzen. Also zuerst prüfen ob opener existiert, dann evtl schauen welches Frame referenziert wird, alert(opener.name)
        Es gab glaube ich einige Browser die Probleme bei Frames machten, wenn man Namen verwendet die auch Objekteigenschaften von window-Objekten sind. Möglicherweise besteht ein sollcher Konfikt.
        Ungeschickt wäre z.b.
        <frame name="document" ...>

        gruss
        Thorsten