HTML Fenster & JavaScript

Anders als bei Frames, wo der Zugriff auf ein Frame in einem Frameset mit Hilfe der Window-Eigenschaften top, parent und self geregelt wird, existiert bei PopUps oder genauer gesagt bei durch die Methode open des Windows-Objekts (oder aber über einen Link mit dem Target-Attribut) geöffneten Browserfenstern ein Verweis auf das Window-Objekt, welches das Fenster geöffnet hat. Dieser Verweis, der unter dem Objektnamen opener angesprochen werden kann, bietet Zugriff auf alle Eigenschaften und Methoden des Window-Objekts des aufrufenden Fensters. Wenn das Browserfenster nicht durch einen Aufruf der Methode open bzw. mit einer Target-Angabe geöffnet wurde, dann ist opener null – es existiert kein Verweis auf ein aufrufendes Fenster.

Beachten Sie auch die Beispiele unter PopUp Fenster, wo das automatische Öffnen von HTML-Fenstern anhand von Beispielen demonstriert wird. Hier werden zwei Funktionen definiert, welche zum Öffnen und Schließen von Browserfenstern verwendet werden können. Dabei wird zur Realisierung des automatischen Öffnens auf das onLoad-Event zurückgegriffen.

JavaScript Beispiel: Neues HTML Fenster öffnen

Die im folgenden Beispiel definierten Links zeigen, wie auf das Window-Objekt eines aufrufenden Fensters zugegriffen werden kann. In beiden Fällen wird ein neues Browserfenster geöffnet: Einmal über den Aufruf von open und einmal mit Hilfe des Target-Attributs des A-Tags. Im JavaScript-Code weiter unten wird ein HTML-Dokument angegeben, welches mit opener auf das derzeit dargestellte Fenster zugreift (wenn die HTML-Datei über Anklicken einer der folgenden Links in einem neuen Fenster geöffnet wurde).

Mit window.open() lässt sich ein HTML-Fenster öffnen. Zum Schließen wird wiederum die Methode window.close() genutzt. Beide zuvor erwähnten Methoden sind Teil des vordefinierten Window-Objekts. Auch bei diesem Beispiel wird der JavaScript Void-Operator verwendet, damit der von window.open gelieferte Rückgabewert unterdrückt wird. Ein Weglassen dieses Operators führt dazu, dass der Inhalt des aktuellen Browserfensters durch das gelieferte Window-Objekt – bzw. eine Zeichenkette, die angibt, dass es sich bei dem gelieferten Wert um ein Window-Objekt handelt – überschrieben.

<a href="javascript:void(window.open ('opener-beispiel.html', 'fenster', ''))" title="">Test mit window.open</a><br>
<a href="opener-beispiel.html" target="_blank" title="">Test mit Target-Attribut</a>

Test mit window.open
Test mit Target-Attribut

JavaScript Window opener - Zugriff auf die Eigenschaften des Elternfensters

Wie schon gesagt, ist es mittels opener möglich, auf das Window-Objekt des aufrufenden Fensters zuzugreifen. Im folgenden Script-Abschnitt wird die HTML-Seite opener-beispiel.html gelistet, welche via opener-Objekt auf das aufrufende Fenster zugreift. Die Seite gibt, so sie über ein anderes Browserfenster aufgerufen wurde, mit Hilfe von JavaScript die Dokument-URL des aufrufenden Fensters, sowie die eigene Dokument-URL aus.

Über write() wird die URL der HTML-Seite des Fensters, welches das neue Fenster geöffnet hat, ausgegeben. Die write-Methode ist Bestandteil des JavaScript-Objekts Document. Ausgegeben wird die im JavaScript Location-Objekt – dieses Objekt liegt in der JavaScript Objekthierarchie unter dem Window-Objekt – gespeicherte Eigenschaft href.

<html>
  <head>
    <title>Opener - Zugriff auf das Window-Objekt des aufrufenden Fensters</title>
  </head>
  <body>
    <script language="javascript" type="text/javascript">
      <!-- // hide from older browsers
      // Wurde das Fenster über ein anderes geöffnet, so gibt es
      // auch in opener einen Verweis auf das aufrufende Fenster.
      if (opener)
        // URL des aufrufenden Fensters über dessen Location-Objekt ermitteln und
        // auf der Seite ausgeben.
        document.write ('<b>URL des aufrufenden Fensters ueber opener<\/b>: ' + opener.location.href + '<br\/>');
      else
        // Fenster wurde nicht über ein anderes geöffnet, was in einer
        // entsprechenden Meldung angezeigt wird.
        document.write ('<b>Dieses Fenster wurde nicht ueber window.open oder mit dem Target-Attribut geoeffnet!<\/b><br\/>');
      // Jetzt noch die URL des aktuellen Fensters ausgeben.
      document.write ('<b>URL des  Fensters<\/b>: ' + window.location.href);
      // -->
    </script>
  </body>
</html>


¬ Insolvenzrecht