Internet Explorer \ n换行符不起作用

时间:2014-09-22 17:17:47

标签: javascript

在IE的所有版本中(我目前正在测试IE11)textarea元素内的新换行符不起作用......

function id_(id)
{ 
 var r = false;
 if (document.getElementById(id))
 {
  r = document.getElementById(id);
 }
 return r;
}

window.onload = function()
{
 for (i in document.getElementsByTagName('audio')[0])
 {
  id_('test').value = id_('test').value + '\n' +i;
 }
}

如何强制IE打破textarea元素中的行?没有框架。

我已尝试\n\r\r\n\r\n

3 个答案:

答案 0 :(得分:3)

在IE中,\n确实在textarea元素中生成换行符。也就是说,这段代码:

<textarea id="target">default text here</textarea>
<script>document.getElementById('target').value = 'a\nb';</script>
在IE中,

会产生一个textarea,其值default text here保持一段难以想象的短时间,然后是值:

a
b

如果你真的想测试你的浏览器,我把它放在JSFiddle上:http://jsfiddle.net/91mj2arh/

答案 1 :(得分:3)

在最小化代码之后,问题是CSS white-space属性,我使用下面的代码修复了该属性。

* {white-space: nowrap;}
textarea {white-space: pre;}

答案 2 :(得分:1)

这个基于你的代码的小提琴在我的IE11版本中添加换行符,它似乎完成了你想要迭代audio元素的属性:

<强> http://jsfiddle.net/ff5kqtru/5/

如果您发布HTML,我们可能会发现问题。