Einfluss auf die öffnende Seite
Sie öffnen aus der Seite A in einem PopUp-Window eine Seite B. Nun möchten sie aus dieser Seite B heraus auf die öffnende Seite A Einfluss nehmen. Das ist möglich. Sie können zum Beispiel für die öffnende Seite A
- eine Anweisung zum Schließen geben (das Fenster schließen)
- einen anderen Inhalt bestimmen (Seite austauschen)
- die Hintergrundfarbe ändern
- einen bestimmten Status abfragen
Das bewerkstelligt man üblicherweise mit einer JavaScript-Funktion
Hier, in der Demo oben, wird der Austausch eines Seiteninhalts aus einem PopUp-Window heraus demonstriert. Diese Seite wird also gegen eine andere ausgetauscht, während das Window geöffnet bleibt. Demo: Remote-Control-Fenster öffnen
Basiswisen
Genau so, wie man vom Hauptfenster auf ein mit open() erzeugtes Window zugreifen kann, kann man von einem solchen Window auf das Hauptfenster zugreifen. Dazu gibt es das Objekt "opener". Damit wird das Fenster angesprochen, von dem aus das aktuelle Window geöffnet wurde. Über das Objekt opener kann man alle Eigenschaften und Methoden des öffnenden Fensters ansprechen. (selfhtml)
Man bezieht sich dabei aus den PopUp-Window heraus auf den "Opener" , dem Öffner des Windows, auf die Seite also, die das PopUp 'erzeugt' hat.
Hintergrund
Wenn ein Dokument (A) ein Zielfenster mit der Methode open() öffnet, dann spezifiziert die 'opener' Eigenschaft die Merkmale des öffnenden Dokuments / Fensters. Selbst wenn die geöffnente Datei (B) inzwischen gegen eine andere (X) ausgetauscht wurde, können sie mit 'opener' z.B. immer noch die Eigenschaften von A abfragen.
Beispiele
a) Die folgende Anweisung würde das Fenster der öffnenden Seite schließen:
opener.close()
b) Die folgende Anweisung würde den Inhalt der öffnenden Seite ändern:
opener.location.href="dateinamel.htm";
c) Die folgende Anweisung würde die Hintergrundfarbe der öffnenden Seite ändern:
window.opener.document.bgColor = "#D5D0F4";
Inhalt der öffnenden Seite ändern
Sie können in einem PopUp-Window mittels JavaScript den Inhalt der öffnenden Seite ändern. Script und Anweisungen im PopUp-Window:
das Sript im Head des Windows:
function aendern(URL)
{
document.opener.location.href = URL;
self.focus();
}
Die Anweisung im Body des Windows:
<a href="javascript:aendern('dateiname1.htm')"> Textlink1 </a>
<a href="javascript:aendern('dateiname2.htm')"> Textlink2 </a>
Und was ist mit Framesets?
Das funktioniert natürlich auch wenn man einen Frameinhalt ändern möchte. Dabei ist man nicht unbedingt auf den Frame des "Openers" beschränkt sondern hat die Möglichkeit, in irgendeinem Frame des gesamten Framesets die HTML-Datei auszutauschen.
Seite : opener.location.href=url.htm
Frameset : opener.top.location.href=url.htm
Framename : opener.FRAMENAME.location.href=url.htm
Framenummer : opener.parent.frames[x].location.href=url.htm;
Für 'FRAMENAME' setzen sie den Namen des Frames ein!
Für 'x' setzen sie die laufende Nummer des Frames ein!
Die Frameinformationen werden beim Öffnen des Framesets vom Broser gespeichert. Dazu gehören auch die Framenamen und die laufenden Nummern der Frames.
Der erste Frame erhält dabei die Nummer 0 (Null), der zweite die Nummer 1 usw. (beim Zählen beginnt der Browser also mit Null, wie alle Computermenschen auch!

|