使用jQuery的.load()
方法我将文本加载到textarea中。适用于Chrome& FF。与往常一样,IE必须是不同的,不会显示换行符。
我试过white-space:pre-wrap
没有运气。
有什么想法吗?
我的代码:
$('#textarea').load('data.php');
data.php 只是查询MySql数据库并打印结果。
答案 0 :(得分:8)
这可能是line-ending issue。文章\n
或\r\n
中的换行符是否有效?如果他们只是\n
,请尝试规范化文本。你可以用一点JavaScript来做到这一点:
function normalizeNewlines(text)
{
return text.replace(/(\r\n|\r|\n)/g, '\r\n');
}
这是一个过去对我有用的解决方案,基本上是反过来的:我需要从<pre>
中取出可以粘贴到 !@#$ing
<的文本/ sub> 记事本并显示完整的换行符。
答案 1 :(得分:4)
使用innerHTML()
时,它们与IE存在兼容性问题。由于Jquery的.html()
和.load()
方法都使用innerHTML()
,因此扩展可能会导致一些问题。
一种解决方案是使用.text()
代替。如果你想使用AJAX和Jquery将文本加载到<textarea>
,你需要做这样的事情:
$('#textarea').post('data.php',function(data){
$(this).text(data);
})
);
答案 2 :(得分:1)
我在内联编辑模式中使用了kendoui网格,因为描述字段textarea被应用,解决方案磨损即内联样式:
<textarea style="white-space:pre-wrap;" name="' + options.field + '" ...
以下代码在keydown事件中:
if (event.keyCode == 13) {
event.stopPropagation();
}