• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

document.write und Umlaute

Status
Für weitere Antworten geschlossen.

NetherNexus

Neues Mitglied
Hallo zusammen,
ich bin gerade auf ein Problem gestoßen, wo ich leider nicht mehr weiterkomme . Hoffe mir kann jemand weiterhelfen.

Das Problem tritt mit dem IE 6.0 unter WinXP SP 2 auf. Da unsere Anwendung auf den IE zugeschnitten ist, habe ich die Sache noch nicht mit anderen Browsern versucht. Ein Umstieg ist ausgeschlossen.

Und zwar habe ich in einer HTML Seite ein eingebettetes IFRAME in das ich per document.write eine Seite schreibe die ich dann später über POST an den Server übermittle (mit js zusammengesetzte Seite siehe Anhang 1).
Das geschieht in folgender Form:

iframe.document.charset = "iso-8859-1";
iframe.document.open();
iframe.document.write(formText);
iframe.document.close();
iframe.document.forms[0].vaMatchCode.value = vaMatchCode;
iframe.document.forms[0].submit();

In Zeile 5 wird der Matchcode automatisch aus einem anderen Feld übernommen.

Nun mein Problem:
Wenn in vaMatchCode ein Umlaut enthalten ist, kommt dieser nicht als Umlaut am Server an (Server ist in diesem Fall 4D 2004.4), sondern in einer anderen Kodierung.
Alle anderen Umlaute werden in meiner Anwendung korrekt an den Server übermittelt.

Was mich aber wirklich wundert ist, dass wenn ich die HTML Seite aus Anhang 1 (hier dann in chooselistform.shtml) als fertige Seite ins iframe lade, wie in folgender Zeile:
<iframe name="myiframe src="/chooselistform.shtml" style="visibility = hidden;" ></iframe>
und dann über "iframe.document.forms[0].vaMatchCode.value = vaMatchCode;" den Wert setze, funktioniert alles Bestens.

Aus diesem Grund schließe ich ein Fehlverhalten des Servers aus. Der Fehler ist also beim document.write zu suchen. Ich habe die Möglichkeit gefunden ein Charset mit zu übergeben, allerdings macht das keinen Unterschied.

Für Hilfe wäre ich sehr dankbar.
Nexus


Anhang 1
submitFormText = "<html>";
submitFormText += "<head>";
submitFormText += " <title></title>";
submitFormText += " <meta http-equiv='content-type' content='text/html;charset=ISO-8859-1'>";
submitFormText += " <meta http-equiv='pragma' content='no-cache'>";
submitFormText += " <meta http-equiv='EXPIRES' content='0'>";
submitFormText += " <meta http-equiv='CACHE-CONTROL' content='PRIVATE'>";
submitFormText += "</head>";
submitFormText += "<body>";
submitFormText += " <form action='/4DACTION/pSearchRelatedData3' method='post'>";
submitFormText += " <input style='width:0px;visibility=hidden' type='text' name='vaMatchCode' value='"+"'>";
submitFormText += " </form>";
submitFormText += "</body>";
submitFormText += "</html>";
 
na ja, grundsätzlich gilt mal, dass du mit deiner seite keinen größeren erfolg haben wirst, da es user gibt, die js abschalten.

nimm doch einfach die html-umlaute:

- ä : &auml;
- ö : &ouml;
- ü : 6uuml;

Nils aka XraYSoLo
 
@XraYSoLo
Mit dem Erfolg ist das kein Problem, da unser Kunde die Seite für den IE haben wollte und JS immer aktiviert ist.

Andere Umlaute zu verwenden ist nicht sinnvoll, da diese erstens auch nicht in der gewünschten Form übertragen werden und zweitens die Übertragung funktioniert, wenn ich die Seite direkt an den Client sende und nicht mittels document.write selbst erstelle.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben