Ich verstehe das nicht. Kann es sein, dass dein Problem serverseitig ist?
Indirekt. Will heissen: kann schon sein, dass das CGI-Programm an der Stelle einen Fehler hat. (Den in dem 2000 Zeilen langen unkommentierten C-Programm zu finden und zu beseitigen steht für mich aber vorerst mal nicht zu Diskussion.)
Das Programm verarbeitet Daten die es aus einem hidden Formular erhält.
Dazu bezieht die Schnittstelle (die an den Client mehr oder weniger via html mit document.write ausgeliefert wird) an dem dem entsprechenden Schritt erstmal das "Formularobjekt" ala
<FORM name="f2" ACTION="./programm.cgi" METHOD="get">
$$hidden$$
</FORM>
Sehr merküwrdiges vorgehen.
Die Werte der Eigenschaften von f2 werden dann überschrieben indem Werte aus einem "normalen" sichtbaren Formular f an das hidden Formular übergeben werden. F hat bei einem Schritt eine Eigenschaft, die f2 nicht hat, dadurch kam es im originalen Programmablauf zu einem Fehler, an dem dann nichts mehr weiter ging, nämlich als das gemacht hätte werden sollen:
document.f2.a = document.f.a;
Das Problem ist deine Definition von Eigenschaft, du meinst vermutlich ein Formularelement, also musst f2 dieses Element hinzufügen und das geht nur mit createElement() und appendChild(...) oder du erzeugst es bei der Ausgabe.
Deshalb hätte ich mal probiert, ein neues Objekt mit allen Eigenschaften und Werten von f zu erzeugen und mit dem dann f2 zu überschreiben... naja das hat natürlich nicht geklappt.
Ein Objekt ist ja nicht gleichbedeutend mit einem Formularobjekt, kann es sein, dass du da as verwchselst, weil der IE immer Object anzeigt wenn du dir z.b. dein document.f.a ausgibst?
FF zeigt in diesem Fall [HTML...Field] an (weiß jetzt den Wortlaut nicht), d.h. du kommst mit einem Objekt nicht weiter, da es auch gar nicht mit dem Formular mitgeschickt werden kann.
Eine Eigenschaft läßt sich einfach mit if(objekt.eigenschaft) prüfen, aber nach wie vor ist die Frage was du überhaupt erzeugen willst.
Hoffe, es ist nun einigermaßen verständlich??? (try catch passte mir hier irgendwie besser ins Konzept... aber im Prinzip wäre das ja Jacke wie Hose)
nur das try ... catch in wesentlich wenigern Browsern funktionert (allerdings in allen die createElement können), aber soweit ich weiß setzt man sowas nur ein, wenn du in den tiefen einer Aufgabe mit execptions schmeißt, du sparst dir dadurch in jeder Funktion alle Rückgabewert zu prüfen und kannst direkt zum Hauptaufruf zurückkehren. Aber um lediglich eine Eigenschaft zu prüfen, ist dieses absoluter overkill und IMHO auch falsch angewandt.
Struppi.