Hallo Sebastian!
Ich habe jetz alles Mögliches mit deinem Vorschlag ausprobiert, aber es klappt leider nicht. Kannst du mir ein konkretes Beischpiel schicken?
Hallo Nadja,
also, ich habe mal ein Farbauswahl-Fenster gebastelt,
wo sowas dabei ist. Geh mal auf
http://www.compagnie-djaseb.com/test/bolab/
Das ganze Projekt ist nur halbfertig, aber den fraglichen
Effekt gibt es dort schon. Es gibt im linken unteren
Frame ein Feld "button-color (RGB)" mit drei
Texteingabefeldern. Dahinter ist ein Link "choose...".
Wenn Du den klickst, geht ein Farbauswahlfenster auf.
Dort wählt man eine Farbe aus. Wenn man dann "Ok" drückt,
wird das Farbauswahlfenster geschlossen und die RGB-Daten
werden in die Felder im Hauptfenster übertragen.
Die entscheidenden Passagen sind
function chrgbopen(pref) {
...
var w = window.open(...);
w.focus();
w.mainwindow = self;
return w;
}
im Hauptfenster 'bolab/cgi/bolab.cgi' und dann
im Farbauswahlfenster 'bolab/cgi/chrgb.cgi':
var mainwindow;
...
function selfapply() {
if(!mainwindow) return false;
if(!checkform()) return false;
mainwindow.setcolor(mainpref, R, G, B);
mainwindow.chrgbclose();
return false;
}
Mit 'mainwindow.setcolor(...)' wird die Funktion
setcolor im Hauptfenster aufgerufen und die Daten
dort ins Formularfeld geschrieben. Ginge aber eigentlich
auch direkt, denn mit 'mainwindow' hat man Zugriff auf
alle Felder und Funktionen des Hauptfensters.
Kann sein, dass das 'w.focus()' nach 'open' wichtig ist
oder die Deklaration von 'var mainwindow' im Farbauswähler,
weiss ich nicht. (Schliessen darf man das Fenster jedenfalls
nur vom Hauptfenster aus, daher 'mainwindow.chrgbclose()'.)
Ich habe es mit cgi-Programmen gemacht, weil die Übertragung
der Daten vom Hauptfenster zum Farbauswahlfenster dann
einfacher ist. Aber entscheidend ist ja nun der Rückweg,
und da macht es keinen Unterschied.
Also, viel Erfolg!
Sebastian