2015-11-02 65 views
6

當我嘗試將多行代碼寫入輸出文本文件時,不會保留換行符,並且所有內容都打印在一行上。輸出文件中的新行字符

在具體的我有上點擊關聯此功能的監聽按鈕:

function (e) { 
    this.downloadButton.setAttribute("download", "output.txt"); 
    var textToSend = string1+"\r\n"+string2+"\r\n"+string3; 
    this.downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend); 
} 

正確下載該文件,但字符串1,字符串和STRING3是在同一條線上。

有什麼建議嗎?

+0

你使用的瀏覽器和操作系統? – baao

回答

4

我想你可能需要編碼你的數據,你可以用encodeURIComponent()來做。

試試這個:

var textToSend = string1+"\r\n"+string2+"\r\n"+string3; 
textToSend = encodeURIComponent(textToSend); 
this.downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend) 
+0

謝謝,這解決了這個問題! – Andrea

3

使用encodeURIComponent()。見下面的工作示例。

var downloadButton = document.getElementById('download'); 
 
var textToSend = encodeURIComponent("string1\r\nstring2\r\nstring3"); 
 
downloadButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + textToSend);
<a id="download" download="output.txt">Download</a>

+0

感謝您的回覆。我之所以選擇musefan的回覆 – Andrea

相關問題