Alex: window.opener mit direkter Weiterleitung klappt nicht im NS 4.7

Hallo,

das leidige Thema "window.opener" schneide ich nochmal an.

Problem:
Von einer Webseite (Frameset mit 2 Frames) wird aus dem unteren
"main"-Frame ein neues Fenster (_new) geöffnet. Das neue Fenster soll sich sofort wieder schließen und im "opener"-Fenster ein neues Frameset laden. Das klappt einwandfrei im IE mit folgenden Befehlen:

window.opener.parent.top.location.href=index.html';
window.close(self);

Klappt im Netscape 4.7 überhaupt nicht.

JavaScript Error: window.opener has no properties.

Das "opener"-Fenster bleibt ja weiterhin bestehen, daher kommer ich nicht so weiter. Hat jemand eine Lösung für den NS 4.7?

Danke aus Oldenburg.

  1. Hallo,

    das leidige Thema "window.opener" schneide ich nochmal an.

    Problem:
    Von einer Webseite (Frameset mit 2 Frames) wird aus dem unteren
    "main"-Frame ein neues Fenster (_new) geöffnet. Das neue Fenster soll sich sofort wieder schließen und im "opener"-Fenster ein neues Frameset laden. Das klappt einwandfrei im IE mit folgenden Befehlen:

    window.opener.parent.top.location.href=index.html';

    parent ist das übergeordnete Frame window und top ist das oberste window. Du moppelst hier doppelt. Und kann unter Umständen auch falsch sein, dazu müßte man genaueres über dein Frameset wissen.

    window.close(self);

    Was soll das self hier bewirken? close() hat keinen Parameter. Du meinst evtl. self.close(), was aber in deinem Falle vermutlich das gleiche wie window.close() ist.

    Klappt im Netscape 4.7 überhaupt nicht.

    JavaScript Error: window.opener has no properties.

    Sicher? nur window.opener nicht vielleicht window.opener.parent.top?

    Das "opener"-Fenster bleibt ja weiterhin bestehen, daher kommer ich nicht so weiter. Hat jemand eine Lösung für den NS 4.7?

    opener.parent.location, vermute ich mal nach deinen Schilderungen, dürfte zum Erfolg führen.

    Struppi.

    1. Hi,

      Von einer Webseite (Frameset mit 2 Frames) wird aus dem unteren
      "main"-Frame ein neues Fenster (_new) geöffnet.

      dieser Fenstername ist nicht erlaubt. Neben den vordefinierten _self, _parent, _top und _blank muss ein Name mit einem Buchstaben beginnen.

      window.opener.parent.top.location.href=index.html';

      parent ist das übergeordnete Frame window und top ist das oberste window.

      Das ist missverständlich: parent ist das übergeordnete Frameset _von_ window, also von self. Oberer Code ist identisch mit opener.top.location.href='index.html', wobei ich jetzt mal das fehlende Quote ergänzt habe :-)

      Und kann unter Umständen auch falsch sein, dazu müßte man genaueres über dein Frameset wissen.

      Genau. Wenn im neuen Fenster beispielsweise ein Frameset lädt, ist der opener nur innerhalb von top enthalten, nicht in den einzelnen Frames. Zudem existiert ein opener ausschließlich dann, wenn das Fenster durch JavaScript geöffnet wurde.

      Du meinst evtl. self.close(), was aber in deinem Falle vermutlich das gleiche wie window.close() ist.

      Es ist _immer_ das gleiche. self und window sind identisch.

      Klappt im Netscape 4.7 überhaupt nicht.

      Das ist ein recht sicheres Indiz dafür, dass es falsch ist. Anders herum war die Tatsache, dass im IE etwas funktioniert, noch nie in irgendeiner Form aussagekräftig.

      JavaScript Error: window.opener has no properties.
      Sicher? nur window.opener nicht vielleicht window.opener.parent.top?

      opener ist ein Objekt vom Typ window. _Jedes_ window hat ein parent und ein top, welches im Zweifel mit dem window identisch ist. Gibt es also window.opener, dann gibt es zwangsläufig auch window.opener.parent.top - und window.opener.parent.parent.top.self.window.top.self.parent.window.

      Cheatah

      --
      X-Will-Answer-Email: No
      1. opener ist ein Objekt vom Typ window. _Jedes_ window hat ein parent und ein top, welches im Zweifel mit dem window identisch ist. Gibt es also window.opener, dann gibt es zwangsläufig auch window.opener.parent.top - und window.opener.parent.parent.top.self.window.top.self.parent.window.

        *LOL*

        Jaja, mir war das zu vertrackt mir genau Gedanken darüber zu machen, aber irgendwo musste ja die Fehlermeldung herkomen. Dann existiert opener nicht, dann hat der OP das Fenster nicht mit window.open() geöffnet. Aber das der IE dann weiss was der opener ist, finde ich sehr seltsam.

        Das self immer gleich window ist, war mir nicht klar, aber mir ist auch nichts eingefallen, wo du unrecht hättest. Also glaub ich dir mal ;-)

        Struppi.

        1. Hi,

          Dann existiert opener nicht, dann hat der OP das Fenster nicht mit window.open() geöffnet. Aber das der IE dann weiss was der opener ist, finde ich sehr seltsam.

          der IE macht leider viel zu viele seltsame Dinge - und viel zu viele _falsche_ Dinge, erstaunlicherweise zumeist genau so, wie der User es gewollt hatte. Und dann folgt natürlich immer die "logische" Schlussfolgerung, dass alle anderen unfähig sind...

          Das self immer gleich window ist, war mir nicht klar, aber mir ist auch nichts eingefallen, wo du unrecht hättest. Also glaub ich dir mal ;-)

          *g*

          Cheatah

          --
          X-Will-Answer-Email: No