2015-11-02 34 views
6

Quando si tenta di scrivere una stringa con più righe su un file di testo di output, i caratteri di nuova riga non vengono conservati e tutto il contenuto viene stampato su una singola riga.Nuovo carattere di riga nel file di output

Nello specifico ho un pulsante con un ascoltatore al clic con associata questa funzione:

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); 
} 

Il file scaricato correttamente, ma string1, string2 e string3 sono sulla stessa linea.

Qualche suggerimento?

+0

quale browser e sistema operativo stai usando? – baao

risposta

4

Penso che potrebbe essere necessario codificare i dati, cosa che si può fare con encodeURIComponent().

Prova questo:

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

Grazie, questo ha risolto il problema! – Andrea

3

Usa encodeURIComponent(). Vedere l'esempio di lavoro di seguito.

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

grazie per la risposta. Ho selezionato la risposta di musefan solo perché precedente – Andrea