Moin,
ich möchte in einem Hauptfenster per Klick andere Fenster öffnen. Diese bekommen eine laufende Nummer um sie später ansprechen zu können. Dieses Ansprechen möchte ich von einem Kindfenster auf alle anderen Kindfenster durchführen.
Kindfenster über das Hauptfenster öffnen:
// Die Fenster die schon geöffnet sind stehen in diesem hidden-Feld
var fensterNamen = document.getElementById('vFenster').value.split(',');
// aktuelle Fensternummer
var fensterNummer = (fensterNamen == "") ? "1" : fensterNamen.length+1;
// neues Fenster wird geöffnet
v[fensterNummer] = window.open(adresse+"&fenstername=v"+fensterNummer, "", "top=10px, left=10px, width=100px, height=100px");
// Nummer des Fensters wird im hidden-Feld gespeichert
if (document.getElementById('vFenster').value == "") {
document.getElementById('vFenster').value = "v"+fensterNummer;
}
else {
document.getElementById('vFenster').value = document.getElementById('vFenster').value+",v"+fensterNummer;
}
Aus Kindfenster andere Kindfenster ansprechen:
// eigener Fenstername (z.B. "v1")
var fenstername = document.getElementById('fenstername').value; // wird per Expression Language gefüllt
// array mit allen Fensternamen
var alleNamen = opener.document.getElementById('vFenster').value.split(",");
// läuft alle (jemals) geöffneten Fenster durch
for (var j = 1; j <= alleNamen.length; j++) {
// prüft ob das Fenster noch geöffnet ist
if (opener[alleNamen[j-1]]) {
alert("Fenster Nr. "+j+" ist noch offen.");
// dem Objekt wir ein Name gegeben
opener[alleNamen[j-1]].name = alleNamen[j-1];
// Nur wenn es nicht das eigene Fenster betrifft
// Alle anderen werden verändert.
if (opener[alleNamen[j-1]].name != fenstername) {
// hidden-Felder der anderen Fenster werden gesetzt
opener[alleNamen[j-1]].document.getElementById('abc').value = "abc";
}
else {
alert("Aktion wurde aus Fenster Nr. "+j+" ausgeführt.");
}
}
else {
alert("Fenster Nr. "+j+" ist schon geschlossen.");
}
}
Wenn ich im Hauptfenster nicht mit dem array "v[fensternummer]" arbeite, sondern mit
v1 = window.open(...
v2 = window.open(...
v3 = window.open(...
können die Kindfenster aufeinander zugreifen. Nur brauche ich die laufende Nummer da der Benutzer so viele Fenster öffnen kann wie er will.
Wie kann ich nun von einem Kindfenster auf das andere zugreifen wenn ich die laufende Nummer im hidden-Feld habe?
Paul