多行文本显示为使用knockoutjs绑定在Firefox单行(Multiline text is

2019-07-29 06:58发布

我刚刚跑进Firefox中使用knockoutjs绑定多行文本的一个非常奇怪的现象。 这里是我的小提琴: http://jsfiddle.net/NznVZ/ 。

我们有一个textarea,并与值/文本结合到同一个观察的跨越。 目前,Chrome和IE都显示在span元素多行文本,但Firefox不(它只是串接几行到1)。

有人可以解释是什么/哪里出了问题? 也许有人已经运行到这个问题,有一个解决方案?

提前致谢

PS火狐12,IE 9,铬18

Answer 1:

设置white-space: pre-wrap风格上的跨度将使其工作: http://jsfiddle.net/mbest/NznVZ/12/

这里有一个小背景。 IE和Chrome将换行转换为字符串中的<br>在HTML元素文本时使用设置innerText ,这是淘汰赛使用。 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>

铬(不含空格风格):

<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>


Answer 2:

如果你想要一个JavaScript解决方案: http://jsfiddle.net/9KAQX/

这里唯一的优点是“\ n”个字符是不存在的跨度。



文章来源: Multiline text is displayed as a single line in firefox using knockoutjs bindings