换行符不会显示在IE中的textarea中

时间:2011-05-05 14:17:37

标签: javascript jquery html ajax internet-explorer

使用jQuery的.load()方法我将文本加载到textarea中。适用于Chrome& FF。与往常一样,IE必须是不同的,不会显示换行符。

我试过white-space:pre-wrap没有运气。

有什么想法吗?

我的代码:

$('#textarea').load('data.php');

data.php 只是查询MySql数据库并打印结果。

3 个答案:

答案 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();
    }