frankx: window.open auf Fenster per Name zugreifen

Hallo,

zum Verständnis von DOM und JS ein Wissenslücke bei mir:

im Frameset kann JS mittels parent.frameName auf eine Fentser zugreifen.

Vom geöffneten Fenster geht es mittels "opener", das geöffnet-habende anzusprechen.

Mit meinFenster=window.open(...) geht es über "meinFenster" dann.

Geht es aber auch, das neue Fenster vom Öffner aus über den Namen anzusprechen, sowas wie top.meinFenster? Und auch, wenn es mit target="meinFenster" geöffnet wurde?

Dank Frankx

  1. Hi,

    Mit meinFenster=window.open(...) geht es über "meinFenster" dann.

    meinFenster ist eine Variable (ein Objekt) innerhalb des öffnenden Fensters - und _nur_ dort. Es ist _nicht_ der Name eines Fensters.

    Geht es aber auch, das neue Fenster vom Öffner aus über den Namen anzusprechen, sowas wie top.meinFenster?

    Du kannst meinFenster im opener suchen, denn dort existiert es (ggf.).

    Und auch, wenn es mit target="meinFenster" geöffnet wurde?

    Das ist wieder etwas ganz anderes. Innerhalb eines Framesets könnte das gefunden werden.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Chetah,

      danke,

      meinFenster ist eine Variable (ein Objekt) innerhalb des öffnenden Fensters - und _nur_ dort. Es ist _nicht_ der Name eines Fensters.

      Genau, das hatte ich schon kapiert.

      Geht es aber auch, das neue Fenster vom Öffner aus über den Namen anzusprechen, sowas wie top.meinFenster?

      Du kannst meinFenster im opener suchen, denn dort existiert es (ggf.).

      Wie denn "suchen"? An welcher Stelle des DOM liegt es denn ggf?

      Das ist wieder etwas ganz anderes. Innerhalb eines Framesets könnte das gefunden werden.

      Dann aber existiert das Fenster schon, weil innerhalb des Framesets defniert, gelle?

      Dank Frankx

      1. Hi,

        Du kannst meinFenster im opener suchen, denn dort existiert es (ggf.).
        Wie denn "suchen"?

        manuell heraus finden (auch durch Recherche), in welchem Objekt es besteht.

        An welcher Stelle des DOM liegt es denn ggf?

        Im DOM liegt es gar nicht.

        Das ist wieder etwas ganz anderes. Innerhalb eines Framesets könnte das gefunden werden.
        Dann aber existiert das Fenster schon, weil innerhalb des Framesets defniert, gelle?

        Das Fenster namens "meinFenster" ist nicht Teil eines Framesets, also nicht Kind eines Fensterobjektes.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo Cheatah,

          irgendwie steht ich aufm Schlauch, sorry.

          Du kannst meinFenster im opener suchen, denn dort existiert es (ggf.).
          Wie denn "suchen"?

          manuell heraus finden (auch durch Recherche), in welchem Objekt es besteht.

          Recherche mach ich immer bei SELFHTML oder google, aber da find ichs nicht(;-). Was ich meine ist, wie denn Recherche?

          Ich habe mit window.open("fenster.htm","fensterName") ein Fenster geöffent. Im DOM (document object model) ist es nicht, da nicht teil des öffnenden Fensters? Auch über "parent" geht es nicht, weil es ja kein "parent" gibt. Wo ist denn jetzt grad mein Loch im Kopf, ich weiß, Ferndiagnose schwierig.

          Dank Frankx

          1. Hi,

            irgendwie steht ich aufm Schlauch, sorry.

            macht ja nichts. Ich habe genügend Lattenzäune vorrätig, um Dir sowohl sämtliche Bretter vom Kopf weg zu schlagen, als auch Dich vom Schlauch runter zu schleudern :-)

            manuell heraus finden (auch durch Recherche), in welchem Objekt es besteht.
            Recherche mach ich immer bei SELFHTML oder google, aber da find ichs nicht(;-). Was ich meine ist, wie denn Recherche?

            Vor einer Recherche stehen vor allem zwei Dinge:
            1.) Abstraktion des Problems (z.B. hat diese spezielle Frage exakt gar nichts mehr damit zu tun, dass Du ein neues Fenster geöffnet hast), und
            2.) die Überlegung, wie (und mit welchen Begriffen) ein Autor eine eventuelle Problemlösung wohl formuliert haben mag.

            Im Falle von SelfHTML besteht eine Recherche gerne auch mal aus dem Lesen in Frage kommender Kapitel.

            Ich habe mit window.open("fenster.htm","fensterName") ein Fenster geöffent. Im DOM (document object model) ist es nicht, da nicht teil des öffnenden Fensters?

            Im DOM ist es nicht, da nicht Teil eines Dokumentbaumes. Du hast ja nirgendwo im HTML ein <window>-Element erzeugt oder so.

            Auch über "parent" geht es nicht, weil es ja kein "parent" gibt. Wo ist denn jetzt grad mein Loch im Kopf, ich weiß, Ferndiagnose schwierig.

            Auf was für JavaScript-Objekte kannst Du denn üblicherweise so alles zugreifen?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallo Cheatah,

              Auf was für JavaScript-Objekte kannst Du denn üblicherweise so alles zugreifen?

              na window.document

              self.frames['iframeName']

              und dann noch history, location, event;

              Ich fragte mich halt, ob u.U. das Fenster den Namen des Fensters kannt, dass von ihm aus geöffnet wurde. Ähnlich wie bei den darin enhaltnen iFrames zB.. Aber wo könnte das stecken. Dreh ich mir im Kreis, denn parent gibts ja nicht, ist es ja quasi selber. Andere Vermutung: es ist im Objektbaum-technisch nicht mit dem geöffneten verbunden. Vermutung: aber vielleicht doch, denn das geöffnete zB. kennt ja auch den "opener".

              Na die Latten helfen ja vielleicht auch bei Im-Kreis-Drehen.

              Dank und Gruß,

              Frankx

              1. hi,

                Ich fragte mich halt, ob u.U. das Fenster den Namen des Fensters kannt, dass von ihm aus geöffnet wurde. Ähnlich wie bei den darin enhaltnen iFrames zB.. Aber wo könnte das stecken.

                • du hast die Javascript-Referenz auf das window-Objekt dieses neuen Fensters (schließlich hast du es gerade eben selber geöffnet)

                • du kennst window.name

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Hallo wahsaga,

                  danke,

                  • du hast die Javascript-Referenz auf das window-Objekt dieses neuen Fensters (schließlich hast du es gerade eben selber geöffnet)

                  jap, ich fragte mich halt, ob es außerhalb dieser Referenz noch etwas analoges zu self.frames['fensterName'] oder "opener" gibt.

                  jetzt schon, das nutzt eben die Referenz auf das window-Objekt um dessen Eigenschaft name abzufragen bzw. zu ändern.

                  Ich schlußfolgere mal, dass das die einzige Möglichkeit ist. Ist ja auch eher eine theoretische Verständnisfrage als von praktischem Nutzen, da mit der Referenz ja alles gehandelt werden kann.

                  Dank Frankx

              2. Hi,

                Auf was für JavaScript-Objekte kannst Du denn üblicherweise so alles zugreifen?
                na window.document
                self.frames['iframeName']
                und dann noch history, location, event;

                also document, verschiedene window, history, location, event. Das ist doch schon was. Findest Du in einem dieser Objekte die erzeugte Variable?

                Ich fragte mich halt, ob u.U. das Fenster den Namen des Fensters kannt, dass von ihm aus geöffnet wurde.

                Das Fenster kennt, wie Du weißt, das Fenster, von welchem aus es geöffnet wurde.

                Ähnlich wie bei den darin enhaltnen iFrames zB..

                Das neu geöffnete Fenster ist kein Teil des öffnenden Fensters, sondern völlig separat davon. Du hast eine Referenz darauf in einer Variable gespeichert.

                Aber wo könnte das stecken.

                In der Variable. Wo steckt die?

                Dreh ich mir im Kreis, denn parent gibts ja nicht, ist es ja quasi selber.

                Wenn Du weiter nach dem _Fenster_ suchst, drehst Du Dich in der Tat im Kreis. Das gibt es nicht - es ist uninteressant; und wenn es interessant sein sollte, kann es der Öffnende auch selbst speichern. In einer Variable.

                Andere Vermutung: es ist im Objektbaum-technisch nicht mit dem geöffneten verbunden.

                Korrekt.

                Vermutung: aber vielleicht doch, denn das geöffnete zB. kennt ja auch den "opener".

                Die Begründung enthält Wahres, ist aber kein Grund für die Schlussfolgerung.

                Na die Latten helfen ja vielleicht auch bei Im-Kreis-Drehen.

                Vor allem dann, wenn ein Fuß festgenagelt ist ;-)

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes