Mehrzeiliger Text wird in Firefox mit knockoutjs Bindings als einzelne Zeile angezeigt

8

Ich habe gerade ein ziemlich seltsames Verhalten von mehrzeiligem Text in Firefox mit knockoutjs Bindings bekommen. Hier ist meine Geige: Ссылка .

Wir haben eine Textfläche und überspannen sie mit Wert / Text, der an dieselbe Observable bindet. Derzeit zeigen Chrome und IE einen mehrzeiligen Text im span-Element an, Firefox jedoch nicht (es verkettet nur mehrere Zeilen zu 1).

Kann jemand erklären, was ist / wo ist das Problem? Vielleicht ist jemand schon auf dieses Problem gestoßen und hat eine Lösung?

Vielen Dank im Voraus

P.S. Firefox 12, IE 9, Chrome 18

    
Andrey 08.05.2012, 00:13
quelle

2 Antworten

20

Wenn Sie den white-space: pre-wrap Stil für den Bereich festlegen, wird es funktionieren: Ссылка

Hier ist ein kleiner Hintergrund. IE und Chrome werden die Zeilenumbrüche in der Zeichenfolge in <br> -Elemente im HTML konvertieren, wenn der Text mithilfe von innerText festgelegt wird. Dies wird von Knockout verwendet. Firefox hat nicht innerText , also verwendet Knockout textContent , was keine Umwandlung der Zeichenkette bewirkt. (Interessanterweise entspricht Chrome Firefox, wenn Sie den Style white-space: pre-wrap verwenden.)

IE:

%Vor%

Chrome (ohne Leerzeichen):

%Vor%

Firefox und Chrome (mit Leerzeichen-Stil):

%Vor%     
Michael Best 08.05.2012, 00:38
quelle
-1

Wenn Sie eine JavaScript-Lösung möchten: Ссылка

Der einzige Vorteil hier ist, dass "\ n" Zeichen in der Spanne nicht vorhanden sind.

    
MK_Dev 08.05.2012 00:41
quelle

Tags und Links