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

8

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

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

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

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

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

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

Ваш Ответ

2   ответа
-1

http://jsfiddle.net/9KAQX/

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

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

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>
Спасибо огромное!!
Большое спасибо за вашу помощь и ваши разъяснения :) Andrey
спас мою жизнь. Спасибо чувак!
отредактировано, чтобы предоставить справочную информацию о том, почему это происходит.

Похожие вопросы