[英]Line breaks won't display in textarea in IE
使用 jQuery 的.load()
方法,我将文本加载到 textarea 中。 在 Chrome 和 FF 中运行良好。 与往常一样,IE 必须有所不同,并且不会显示换行符。
我试过white-space:pre-wrap
没有运气。
有任何想法吗?
我的代码:
$('#textarea').load('data.php');
data.php只需查询 MySql 数据库并打印结果。
这可能是一个行尾问题。 文本中的换行符是\n
s 还是\r\n
s? 如果他们只是\n
尝试规范化文本。 你可以用一点 JavaScript 来做到这一点:
function normalizeNewlines(text)
{
return text.replace(/(\r\n|\r|\n)/g, '\r\n');
}
这是一个在过去对我有用的解决方案,基本上相反:我需要从<pre>
中取出可以粘贴到!@#$ing
记事本中的文本,并显示完整的换行符。
使用innerHTML()
时,它们是与 IE 的兼容性问题。 由于 Jquery 的.html()
和.load()
方法都使用innerHTML()
,它们通过扩展可能会导致一些问题。 一种解决方案是改用.text()
。 如果要使用 AJAX 和 Jquery 将文本加载到<textarea>
中,则需要执行以下操作:
$('#textarea').post('data.php',function(data){
$(this).text(data);
})
);
我在内联编辑模式下使用了 kendoui 网格,对于描述字段 textare 被应用,解决方案是内联样式:
<textarea style="white-space:pre-wrap;" name="' + options.field + '" ...
以及 keydown 事件中的以下代码:
if (event.keyCode == 13) {
event.stopPropagation();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.