Multiple BR elemente im IE per DOM
Axel Kittenberger
- javascript
0 Axel Kittenberger0 Struppi
0 Gernot Back0 plan_B
Hi, kennt ihr den Fehler, ich häng mehrere BR Elemente hintereinander, aber der IE macht nur 1ne neue Zeile und keine Leerzeilen.
Gibt man die BR elemente ganz normal im HTML an, macht er ja die Leerzeilen.
Javascript Codesnippet kann ich nur schwer zeigen, weil das ganze in einem GWT-Ding eingebettet ist. Aber mit allen anderen Browsern gehts, und im DOM-Tree (beim Firefox) seh ich auch die BR-Elemente drinnen.
:-l IE >:-l
Lg,
Oh noch was, das ist innerhalb eines PRE feldes, wo man doch annehmen könnte, das gerade da formatierung wichtig ist :s
Naja in einem normal DIV scheints normal zu funktionieren.
Oh noch was, das ist innerhalb eines PRE feldes, wo man doch annehmen könnte, das gerade da formatierung wichtig ist :s
In einem pre Element brauchst du keine <br> soindern einfach \n (ohne \r, das ist ein unnötiges Zeichen, ein \n ist ein Zeilenumbruch je nach Betriebsystem)
Da du keinen Code gezeigt hast, ist meine Vermutung, dass du immer das gleiche Element einhängst, ein createElement erzeugt EIN Element, dass im Falle des mehrfachen einfügens trotzdem immer nur einmal vorhanden ist.
Struppi.
Hallo Axel,
Hi, kennt ihr den Fehler, ich häng mehrere BR Elemente hintereinander, aber der IE macht nur 1ne neue Zeile und keine Leerzeilen.
Was sollten gleich mehrere BR-Elemente hintereinander für einen Sinn haben? Wenn es dir um einen größeren Abstand geht, dann gib dem einen angehängten BR-Element doch einfach eine größere Height bzw. Line-Height oder verzichte ganz auf das BR-Element und gib dem umgebenden Blockelement ein Padding- bzw. Margin-Bottom.
Gruß Gernot
Was sollten gleich mehrere BR-Elemente hintereinander für einen Sinn haben? Wenn es dir um einen größeren Abstand geht, dann gib dem einen angehängten BR-Element doch einfach eine größere Height bzw. Line-Height oder verzichte ganz auf das BR-Element und gib dem umgebenden Blockelement ein Padding- bzw. Margin-Bottom.
Die BR-Elemente werden dynamisch vom javascript erstellt, Je nach bedarf, da gehts mit doppelter höhe usw. nicht, bzw. macht die ganze wieder immens komplizierter, nur weil der IE wieder dumm ist.
Außerdem soll der entstande Text COPY/PASTE Fähig sein für den User. Und der hat dann statt 3 Leerzeilen nur eine im Buffer.
---
Was ich jetzt als Lösung machen werde ist statt <br> elemente ein:
"<span>\r\n</span>". Das geht auch mit dem IE. Obwohl das im Code auch wieder Ausnahmen erfordert :(
Hallo,
Was ich jetzt als Lösung machen werde ist statt <br> elemente ein:
"<span>\r\n</span>". Das geht auch mit dem IE.
dann hoffe ich mal, dein Code wird eher so aussehen ...
var zeilen=textarea.value.split("\n");
var pre=document.createElement("pre");
for (var z=0; z< zeilen.length; z++) {
/*@cc_on @*/
/*@if (@_jscript)
if ( zeilen[z]=="" ) zeilen[z]=" "; // Spezialfall IE
/*@end @*/
if (zeilen[z].length > 0 ) pre.appendChild(document.createTextNode(zeilen[z]));
pre.appendChild(document.createElement("br"));
}
parent_node.appendChild(pre);
Gruß plan_B
Hallo,
Hi, kennt ihr den Fehler, ich häng mehrere BR Elemente hintereinander, aber der IE macht nur 1ne neue Zeile und keine Leerzeilen.
ja, wiedermal eine Extrawurst für den IE
Gibt man die BR elemente ganz normal im HTML an, macht er ja die Leerzeilen.
bei mir nicht:
<pre>testzeile<br>testzeile<br><br>testzeile</pre>
Javascript Codesnippet kann ich nur schwer zeigen, weil ....
macht nix, denke du hast auch so eine Lösung gefunden.
Gruß plan_B