javascript - 使用 knockoutjs 绑定(bind)在 firefox 中将多行文本显示为单行

标签 javascript firefox knockout.js

我刚刚在使用 knockoutjs 绑定(bind)的 firefox 中遇到了一个非常奇怪的多行文本行为。 这是我的 fiddle :http://jsfiddle.net/NznVZ/ .

我们有一个 textarea 和 span,值/文本绑定(bind)到同一个 observable。 目前,Chrome 和 IE 会在 span 元素中显示多行文本,但 firefox 不会(它只是将几行连接成 1)。

谁能解释一下问题是什么/哪里出了问题? 也许有人已经遇到过这个问题并有解决方案?

提前致谢

附言火狐 12、IE 9、Chrome 18

最佳答案

设置white-space: pre-wrap跨度上的样式将使它起作用:http://jsfiddle.net/mbest/NznVZ/12/

这是一个小背景。 IE 和 Chrome 会将字符串中的换行符转换为 <br>使用 innerText 设置文本时 HTML 中的元素,这就是 Knockout 使用的。 Firefox 没有 innerText所以 Knockout 使用 textContent ,它不对字符串进行任何转换。 (有趣的是,当您使用 white-space: pre-wrap 样式时,Chrome 与 Firefox 匹配。)

即:

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

关于javascript - 使用 knockoutjs 绑定(bind)在 firefox 中将多行文本显示为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490851/

相关文章:

select - knockoutjs 映射选择数据绑定(bind)选项

javascript - 添加到可观察数组时, knockout 模板不会更新列表

javascript - 使用javascript连接到另一个网络中的node.js socket.io服务器

javascript - Ajax 调用在 Firefox 中似乎失败

javascript - 在 Javascript 中构建对象原型(prototype)会破坏 jQuery?

firefox - 使用 Firefox SDK 自动进行 Wi-Fi 授权

c# - 如何匹配来自 Firefox 浏览器的正则表达式中的句点?

javascript - 在knockout.js中创建observableArray的动态数组

javascript - php - 自动关闭打开的 html 标签

javascript - 根据下拉列表中的选择更改段落文本 - Angular