Marc Nilius: Neu geoeffnetes Fenster verweist per Link auf altes Fenster

Hallo!

Ich habe mal wieder gerne ein Problem gehabt.

Auf einer Seite wird per window.open() ein neues, kleines Zusatzfenster geoeffnet. Soweit, sogut.
In der in diesem Zusatzfenster angezeigten HTML-Datei gibt es einen Link. Die dort hinterlegte Datei soll aber nicht im aktuellen Fenster, sondern in dem Fenster geöffnet werden, aus dem das Zusatzfenster geöffnet wurde.

Vielleicht zur besseren Verständlichkeit:

Fenster1 => window.open(Zusatzfenster)
In Zusatzfenster: <a href="datei.html"> => target=Fenster1
Zusätzlich soll danach per window.close() das Zusatzfenster geschlossen werden.

Wie ist das zu realisieren? Habe mich schon daran versucht, bin aber aufgrund meiner geringen JS-Kenntnissen daran gescheitert. :-)

Schonmal ein Danke voraus.

Gruss,
Marc

  1. Hi Marc,

    window.open()

    In der in diesem Zusatzfenster angezeigten HTML-Datei gibt es einen Link. Die dort hinterlegte Datei soll aber nicht im aktuellen Fenster, sondern in dem Fenster geöffnet werden, aus dem das Zusatzfenster geöffnet wurde.

    "opener.location.href" ist dein Freund.
      ^^^^^^

    Mit einem normalen HTML-Link geht das nicht und genau das wird zum Problem. Bedenke, dass mehr Leute Javascript deaktiviert haben, als du vielleicht annimmst.

    Zusätzlich soll danach per window.close() das Zusatzfenster geschlossen werden.

    <a href="datei.html" onclick="opener.location.href='datei.html';self.close();return false;">Link</a>

    Wobei das "return false" bewirkt, dass bei JS-fähigen Browsern der normale Link nicht beachtet wird, aber du schließt das Fenster ohnehin - so es der UserAgent des Benutzers zulässt, denn auch das kann man ebenso wie PopUps unterbinden. Zweiteres wirst du *sehr* häufig antreffen. PopUps sind keine gute Idee, wende sie bitte wenigstens richtig an:

    http://home.t-online.de/home/dj5nu/js-popup.html

    LG Orlando

    1. Hi Orlando,

      "opener.location.href" ist dein Freund.
        ^^^^^^

      Na, da danbke ich aber mal recht herzlich. Dat war et. ;-)

      Mit einem normalen HTML-Link geht das nicht und genau das wird zum Problem. Bedenke, dass mehr Leute Javascript deaktiviert haben, als du vielleicht annimmst.

      Ja, das weiss ich. Dessen binich mir vollstens bewusst. Ich hatte für nicht so wichtige Informationen ein neues Fenster geöffnet und musste feststellen, dass ich eigentlich gerne einen weiterführenden Link einbinden wuerde. Das das ziemlich "schief" und nicht gerade sinnvoll ist, ist mir bewußt, nur es ging gerade mal nicht anders. :-)

      Wobei das "return false" bewirkt, dass bei JS-fähigen Browsern der normale Link nicht beachtet wird, aber du schließt das Fenster ohnehin - so es der UserAgent des Benutzers zulässt, denn auch das kann man ebenso wie PopUps unterbinden. Zweiteres wirst du *sehr* häufig antreffen. PopUps sind keine gute Idee, wende sie bitte wenigstens richtig an:

      Auch das ist mir bewusst, deswegen wende ich sie ja auch richtig an :-)
      Und selbst wenn man das Fenster nicht sieht, ist das kein Untergang, denn meine Seiten sind (fast) :-) immer so gebaut, dass man auch ohne JS zu brauchbaren und benutzbaren Ergebnissen kommt, bzw. keine Informationen vorenthalten werden.

      Gruss,
      Marc