<textarea id="textarea"> </textarea>
<div id="div">
line1
line2
line3
</div>
<script>
document.getElementById("textarea").value=document.getElementById("div").innerHTML;
</script>
在Firefox和Chrome下,textarea的内容都显示为有换行的,在IE6下,换行就丢失了。请问有什么办法解决么?

解决方案 »

  1.   

    IE不支持w3标准,需要把\r\n换行替换成html的<br />换行Replace("\r\n", "<br/>").Replace("\n","<br/>"); 
      

  2.   

    //测试发现,ie中通过innerHTML获取的内容不是原样的,行末的换行符(ASIIC码10)变成了空格(32)
    var txt = document.getElementById('div').innerHTML;
    for(var i = 0; i < txt.length; i ++) alert(txt.charCodeAt(i));搜索了一下,貌似IE6-8版本都会有这种情况,不知道怎么解决。。
    http://www.cnblogs.com/snandy/archive/2011/04/07/2007553.html
      

  3.   


    我是要放在textarea的value里,不需要弄成<br />啊
      

  4.   


    Replace("\r\n","\n");
    试下这个
      

  5.   

    用textarea.value代替用textarea.innerHTML
      

  6.   

    我和你一样的问题,把那个div改成textarea就可以了,取值用value
      

  7.   

    这么做有什么用处呢?有些浏览器会对加载到内存中的HTML代码重新整理,多个连续的空白字符会当作一个空格来对待,所以试图用innerHTML来获取原始的HTML代码是不可靠的。