Textfeld, LoadVars und Zeilenumbrüche

Jens B.

Erfahrenes Mitglied
Hallo.
Nehmen wir einmal an, ich hätte ein dynamisches Textfeld namens "jens". Wenn ich diesen Befehl ausführe:

Code:
jens.text = "hallo\n\tdu";

bekomme ich die richtige Ausgabe. Habe ich aber eine Textdatei "peter.txt" mit dem Inhalt "frauke=hallo\n\tdu&", und versuche das Ganze mit LoadVars, bekomme ich die "\n" und "\t" mit ausgegeben - in Buchstabenform, nicht als Absätze oder Tabs:

Code:
heinrich = new LoadVars();
heinrich.onLoad = function() {
 jens.text = this.frauke;
} 
heinrich.load(peter.txt);

Da in der Textdatei auch "Österreich" vorkommt, habe ich System.useCodepage = true gesetzt. Das Problem tritt auch auf, wenn ich die Textdatei in anderen Arten speichere (UTF-8 usw). trace(heinrich.frauke) gibt den korrekten Text aus (also auch mit \n und \t statt Zeilenumbrüchen und Tabs).

Wie macht man das wieso richtig?
 
Hi,

ich hatte vor kurzem das gleiche Problem mit deim einladen meiner texte über xml die auch "\n" usw hatten.

Versuche mal den string mit dem entsprechenden unicode für zb "\n" wäre das "\u005c"+"n" aufzuteilen und dann wieder mit "\n" zusammenzufügen.
Sollte so klappen, ne besser methode hab ich bislang auch nicht gefunden:

Code:
heinrich = new LoadVars();
heinrich.onLoad = function() {
	if (this.frauke.indexOf("\u005c"+"n") != -1 || this.frauke.indexOf("\u005c"+"t") != -1) {
		a = this.frauke.split("\u005c"+"n").join("\n").split("\u005c"+"t").join("\t");
		jens.text = a;
	}
};
heinrich.load("peter.txt");

Gruß
 
Hi,

eine andere Alternative wäre die Verwendung von XML-Dateien (das LoadVars-Objekt ist für längere Texte aufgrund der Beschränkungen der URL-Kodierung eh nur bedingt geeignet):
Code:
<foo><![CDATA[Hier kann beliebiger Text
mit Umbrüchen oder auch mit <u>html-Tags</u> stehen.]]></foo>
Code:
var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
  textfeld.htmlText = this.firstChild.firstChild.nodeValue.split(chr(10)).join(chr(13));
}

xm.load("foo.xml");

Gruß
.
 
Zurück