Многострочный текст отображается в Firefox одной строкой, используя привязки knockoutjs

Я только что столкнулся с довольно странным поведением многострочного текста в Firefox с использованием привязок knockoutjs. Вот моя скрипка:http://jsfiddle.net/NznVZ/.

У нас есть textarea и span со значением / текстовой привязкой к тому же наблюдаемому. В настоящее время Chrome и IE отображают многострочный текст в элементе span, но Firefox этого не делает (он просто объединяет несколько строк в 1).

Может кто-нибудь объяснить, в чем / где проблема? Может, кто-то уже сталкивался с этой проблемой и имеет решение?

заранее спасибо

Постскриптум Firefox 12, IE 9, Chrome 18

 xandy08 мая 2012 г., 02:24
Я тестировал с ff12 и никаких проблем вообще.
 MK_Dev08 мая 2012 г., 02:47
@ xandy, это довольно странно. Я мог бы воспроизвести это на моем FF 12 без проблем
 xandy08 мая 2012 г., 02:31
Я пытался положить \ n в JavaScript, работает. И я попробовал нажать Enter в текстовом поле, работает.
 MK_Dev08 мая 2012 г., 02:28
@ xandy ты пробовал ставить разрывы строк? Если это так, в FF они объединяются в промежутке, но другой браузер вставляет соответствующие BR

Ответы на вопрос(2)

Решение Вопроса

white-space: pre-wrap Стиль на пролете заставит его работать:http://jsfiddle.net/mbest/NznVZ/12/

Вот немного предыстории. IE и Chrome преобразуют символы новой строки в строку<br> элементы в HTML, когда текст установлен с помощьюinnerText, который использует Knockout. Firefox не имеетinnerText поэтому нокаут используетtextContent, который не выполняет никакого преобразования строки. (Интересно, что Chrome соответствует Firefox, когда вы используетеwhite-space: pre-wrap стиль.)

IE:

<span>First line.<br>Second Line.<br>&nbsp;&nbsp;&nbsp;&nbsp; Third line preceded with 5 space characters.</span>

Chrome (без пробелов):

<span>First line.<br>Second Line.<br>     Third line preceded with 5 space characters.</span>

Firefox и Chrome (в стиле пробела):

<span>First line.
Second Line.
     Third line preceded with 5 space characters.</span>
 Andrey08 мая 2012 г., 12:29
Большое спасибо за вашу помощь и ваши разъяснения :)
 14 июл. 2016 г., 22:12
спас мою жизнь. Спасибо чувак!
 08 мая 2012 г., 10:42
отредактировано, чтобы предоставить справочную информацию о том, почему это происходит.
 27 авг. 2013 г., 09:38
Спасибо огромное!!

http://jsfiddle.net/9KAQX/

Единственным преимуществом здесь является то, что & quot; \ n & quot; символы не присутствуют в промежутке.

 07 мая 2013 г., 21:53
Работает нормально, если ваш текст не содержит специальных символов HTML, таких как символ меньше или больше, чем. Попробуйте ввести 3 & lt; 6, например :)

Ваш ответ на вопрос