2013-02-25 60 views
0

我正在嘗試從服務器讀取文本文件並在我的網頁上顯示div。這裏是我的AJAX/Javascript:如何通過Javascript/AJAX逐行顯示文本文件?

<body onload="loadXMLDoc()"> 
    <script> 
     function loadXMLDoc() 
     { 
      var xmlhttp; 
      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange=function() 
      { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText.replace("\n", "<br />"); 
       } 
      } 
      xmlhttp.open("GET","ajax_info_test.txt?t=" + Math.random(),true); 
      xmlhttp.send(); 
      setInterval (loadXMLDoc, 1000); 
     } 
    </script> 
    <div id="myDiv"></div> 
</body> 

它只在文本文件的第一行顯示它自己的行。我怎樣才能做到這一點的每一行呢?

回答

1

.replace只有布拉德中號似乎不完全回答替換\ n

document.getElementById("myDiv").innerHTML=xmlhttp.responseText.replace("\n", "<br />"); 
+0

你建議.....? – 2013-02-25 22:13:55

+0

已經有很多關於javascript字符串替換的stackoverflow上的帖子,我認爲這將有助於診斷您的錯誤。 – 2013-02-25 22:18:29

3

的第一個實例,你的問題是你只更換一條線。使用以下命令刪除所有\ n,然後使用br標籤加入。

xmlhttp.responseText.split('\n').join('<br/>'); 
+0

謝謝豐富的回答與建議:) – 2013-02-25 22:15:43

+0

偉大的作品!謝謝你,先生。 – 2013-02-25 22:17:40

+1

如果決定對行進行進一步處理,比如將其包裝在其他html元素中進行樣式處理或進行處理,這是最好的。但是,如果簡單地用html元素標籤替換換行符,那麼建議的全局替換saganbyte應該更高效。 – Rich 2013-02-25 22:26:19

0

要替換\ r \ n或\ r \ n全球:

var str = xmlhttp.responseText; 
var replacedStr = str.replace(/\r\n|\r|\n/g,"<br />"); 
document.getElementById("myDiv").innerHTML = replacedStr;