Zeilenumbruch in berechnetem String aus Array

TIMS_Ralf

Erfahrenes Mitglied
Hallo Leute,

Habe in einem Array diverse Strings:

Code:
Datensatz = new Array();
 Datensatz[0] = new Object();
  Datensatz[0]["Hd"] = " Demo für \"1_yK#0#NmK#_yK1\"";
  Datensatz[0]["Dt"] = "Kostenlos und unverbindlich: Jetzt eine individuelle Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
 
 Datensatz[1] = new Object();
  Datensatz[1]["Hd"] = "Zum Shop"
  Datensatz[1]["Dt"] = "Hier den Shop mit Preisen für \"1_yK#0#NmL#_yK1\" aufrufen?";
  
// usw.

Im Script wird einiges zusammengebaut, dann Der_fertige_String ins HTML geschrieben:

Code:
    HTML_Inhalt_Laenge = HTML_Tag.firstChild.nodeValue.length;
    HTML_Tag.firstChild.replaceData(0, HTML_Inhalt_Laenge, Der_fertige_String);

Das funktioniert alles bestens. Allerdings krieg ich keine Zeilenumbrüche in den String - weder Escape-Sequenz, noch BREAK-Tag, noch - in meiner Verzweiflung - ASCII-Codes. Bsp.: Zeilenumbruch hinter "Kostenlos und unverbindlich:"

Code:
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:\nJetzt eine Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:\n\rJetzt eine Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:<BR>Jetzt eine Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:%0d%0aJetzt eine individuelle Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:" + <BR> + "Jetzt eine Demo für \"1_yK#0#NmK#_yK1\" bestellen?";

Wenn ich in den String z.B. <Umbruch> einsetze und lasse dies am Ende aller Berechnungen durch die Escape-Sequenz ersetzen, dann ersetzt er mir zwar <Umbruch> mit der Escape-Sequenz... führt die Escape-Sequenz ( = den Umbruch) aber nicht aus.

Code:
Datensatz[0]["Dt"] = "Kostenlos und unverbindlich:<Umbruch>Jetzt eine Demo für \"1_yK#0#NmK#_yK1\" bestellen?";
// ...
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "\n");

Gebe ich den String allerdings in "alert(Der_fertige_String);" aus... dann kommt der Umbruch...!******

Sonstiges: Der Eintrag http://www.tutorials.de/javascript-...umbruch-n-javascript-funktion-uebergeben.html hilft da auch nicht weiter, da ich im Array ja nur einen String habe, den ich nicht zusammenbauen kann.


Also: Woran liegts und wie bekomme ich so nen blöden Zeilenumbruch in den String des Arrays...?

Vielen Dank vorab,
Ralf
 
Zuletzt bearbeitet:
Ich nehme an das ganze lässt du im Browser anzeigen?

wie wäre es dann mit:
Javascript:
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "<br />");


;)
 
Hi...
danke erstmal für Hinweis, aber nöö... macht er auch nicht - der Browser :)
Er - der Browser - ersetzt es und schreibt das "<br />" dann in den Text. Gleiches für

Code:
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "<br>");
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "<br><br>");

Das ist für ihn ein String, kein TAG.
Und hier ersetzt er zwar die Escaoe-Sequenz, führt den Umbruch aber nicht aus:

Code:
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "\n");
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "\r\n");

...?
 
Zuletzt bearbeitet:
Hmm hast recht

http://jsfiddle.net/jFz4J/

Benutze für solche sachen immer jQuery. replaceData brauchte ich bis jetzt noch nicht.


Ersetze:
Javascript:
HTML_Tag.firstChild.replaceData(0, HTML_Inhalt_Laenge, Der_fertige_String);
mit:
Javascript:
HTML_Tag.firstChild.replaceData(0, HTML_Inhalt_Laenge, Der_fertige_String);
HTML_Tag.parentElement.removeChild(HTML_Tag);
document.write(HTML_Tag.firstChild.nodeValue);
Das müsste funktionieren, aber insgesamt würde man da eine schönere Lösung hinbekommen.



Wieso benutzt du kein jQuery?


Edit: Alternativ:
Javascript:
HTML_Tag.innerHTML = Der_fertige_String;
Nimm das, das Funktioniert mit Tags und ist dazu noch schöner :) (und die Länge musst du auch nicht mehr ausrechnen)
 
Zuletzt bearbeitet:
Also in meinem Code steht natürlich nicht "Der_fertige_String" :) hab ich hier nur fürs bessere Verständnis gewählt.
Im "echten Quelltext" ist die Ersetzung ausgeführt, es steht aber auch kein Umbruch, sondern eben.

Code:
<td>Kostenlos und unverbindlich: Jetzt eine individuelle Demo f&uuml;r "Domain_Test" bestellen?</td>

Ich versteh echt nicht, was der macht... bzw. weshalb er die Escape-Sequenz nicht ausführt!?
Die Gänsefüßchen mit \" hat er doch auch ausgeführt...?
 
Zuletzt bearbeitet:
Du Held - Du...!

Alles klar, mit .innerHTML funktionierts! Die Lösung:

Code:
Der_fertige_String = Der_fertige_String.replace(/<Umbruch>/g, "<BR>");
// ...
HTML_Tag.innerHTML = Der_fertige_String;

An der ******e häng ich jetzt seit 3 Tagen... DANKE - SUPER!
Warum es mit replaceDate nicht funktionierte ist mir schleierhaft... das scheint kein reines HTML reinzuschreiben. Aber egal... dannhalt mit innerHTML .


jQuery... ja, hast recht, geht aber leider nicht: Das JS/HTML/CSS-Konstrukt läuft auf einigen Domains - und dort jeweils auf massig WEB-Seiten. Da kann ich nichts ändern - eben nur intern, ohne dass Paramter u.ä. geändert werden dürfen. Wollte ja nur n blöden Umbruch haben... :)

DANKE!
Gruß Ralf
 

Neue Beiträge

Zurück