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

Gar*_*yan 6 html javascript ajax jquery internet-explorer

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

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

有任何想法吗?

我的代码:

$('#textarea').load('data.php');
Run Code Online (Sandbox Code Playgroud)

data.php简单查询MySQL数据库,并打印出结果.

Mat*_*all 8

这可能是一个终结问题.文本\ns或\r\ns 中的换行符是什么?如果他们只是\n尝试规范化文本.您可以使用一些JavaScript来完成此操作:

function normalizeNewlines(text)
{
    return text.replace(/(\r\n|\r|\n)/g, '\r\n');
}
Run Code Online (Sandbox Code Playgroud)

这是一个过去对我有用的解决方案,基本上是反过来的:我需要从<pre>可以粘贴到!@#$ing记事本中的文本中获取文本并显示完整的换行符.

  • @Gary,尝试`data.indexOf('\n')`,字符不是字面斜线然后是字母,它是单个字符,它只是在代码中以可视方式显示. (2认同)

Gar*_*yan 4

它们是使用 IE 时的兼容性问题innerHTML()。由于 Jquery.html().load()方法都使用innerHTML(),因此它们扩展后可能会导致一些问题。一种解决方案是使用.text()替代方法。如果您想<textarea>使用 AJAX 和 Jquery 将文本加载到您需要执行以下操作:

$('#textarea').post('data.php',function(data){
        $(this).text(data);
    })
);
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,但我能够通过使用 `.val` 解决我的问题 - http://stackoverflow.com/questions/5583040/show-newlines-in-html-textarea/5583094#5583094 (5认同)