Javascript Internet Explorer \n换行符不工作

Javascript Internet Explorer \n换行符不工作,javascript,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

在所有版本的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
在IE中,
\n
确实会在
文本区域
元素中生成换行符。也就是说,这个代码:

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

如果你真的想测试你的浏览器,我把它放在一个JSFIDLE上:

这个基于你的代码的FIDLE在我的IE11版本中添加了换行符,它似乎完成了你想要迭代
音频
元素属性的任务:


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

最小化代码后,问题是CSS
空白
属性,我用下面的代码修复了该属性

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

这似乎适用于IE11。你想通过这个循环实现什么?试试这个
$('#test').val($('#test').value+'\n'+i)
ref:
for(i在document.getElementsByTagName('audio')[0])
看起来很奇怪,你确定它不是
for(i在document.getElementsByTagName('audio'))
?@IgorJerosimić吗?我假设他正在迭代第一个
audio
标记的属性,因此就是
[0]
。当空白设置为
nowrap
时,IE会忽略换行,这真的很奇怪。我试过Chrome、Firefox、Safari和Opera,只有IE显示了这种行为。根据,nowrap的换行符应该被禁止,所以IE是唯一正确的浏览器吗?尽管我们都讨厌IE,但我不得不承认,当他们努力正确解释事物时,他们确实做得很好。例如,他们采用了
边界半径
()。非常感谢。Safari刚刚开始这样做,所以我非常感谢找到了一个解决方案。
* {white-space: nowrap;}
textarea {white-space: pre;}