Netscape Problemm
Nadja
- javascript
Hallo! Ich kann ein Problemm nicht lösen. Und zwar:
Fenster1 öfnet Fenster2. Ich schreibe ein Wert im Feld des Formulares Fenster2. Diesen Wert möchte ich an Fenster1 übergeben (Durch, dass ich ein Link anklicke). In IE funktionirt es, aber nicht in Netscape.
window.opener.document.Form.Feld.value=window.document.Form.Feld.value;
Danke für Antwort, Nadja
Hallo Nadja!
window.opener.document.Form.Feld.value=window.document.Form.Feld.value;
<kristallkugel>
Du benutzt eine <select> Liste.
Im IE hat der value dann einen Wert, im NN muss aber explizit
document.Form.Feld.selectedIndex stehen.
http://selfhtml.teamone.de/javascript/objekte/options.htm#selected_index
</kristallkugel>
Ansonsten ergänzt der IE fehlende ", falsche Kommentar und diverses andere, ohne angemessene Fehlermeldungen zu erzeugen - ohne den Code kann man da nur raten.
Gruss,
Carsten
Hallo! Ich kann ein Problemm nicht lösen. Und zwar:
Fenster1 öfnet Fenster2. Ich schreibe ein Wert im Feld des Formulares Fenster2. Diesen Wert möchte ich an Fenster1 übergeben (Durch, dass ich ein Link anklicke). In IE funktionirt es, aber nicht in Netscape.
window.opener.document.Form.Feld.value=window.document.Form.Feld.value;
Hallo Nadja,
Du kannst Fenster2 explizit eine Referenz auf Fenster1 mitgeben.
Also in Fenster1 etwa:
Fenster2 = window.open(...);
Fenster2.MeinOpener = self;
Dann kannst Du in Fenster2 schreiben:
if(MeinOpener) MeinOpener.document.Form.Feld.value = ...
und der Wert wird in Fenster1 gesetzt.
Gruss
Sebastian
Hallo Sebastian!
Ich habe jetz alles Mögliches mit deinem Vorschlag ausprobiert, aber es klappt leider nicht. Kannst du mir ein konkretes Beischpiel schicken?
Gruss, Nadja
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