Keine Zeilenumbrüche beibehalten, wenn text-Datei als blob
Habe ich ein Textfeld, das text enthält, möchte ich die Ausgabe in eine text-Datei, die Benutzer herunterladen können.
Diese Funktion nutze ich, um es zu packen, wenn der Benutzer auf die Schaltfläche speichern
function saveTextAsFile()
{
var textToWrite = document.getElementById("inputText").value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
alert(textFileAsBlob);
var fileNameToSaveAs = document.getElementById("inputFileNameToSaveAs").value;
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.webkitURL != null)
{
//Chrome allows the link to be clicked
//without actually adding it to the DOM.
downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
}
else
{
//Firefox requires the link to be added to the DOM
//before it can be clicked.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
}
downloadLink.click();
}
Aber die Zeilenumbrüche werden nicht beibehalten. Sie existieren im Dokument.getElementById("inputText").Wert; aber nicht in der text-Datei erstellt von der blob.
- Finden Sie die Antwort auf diese von einer der Antworten auf die folgenden post (check-out die Antwort über CODE 13): stackoverflow.com/questions/9980416/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in das gleiche problem. Dies scheint zu funktionieren für mich:
.replace(/([^\r])\n/g, "$1\r\n");
. Auf diese Weise vermeidet es passende\r\n
würde, was am Ende als\r\r\n
.ändern
zu
Funktioniert möglicherweise nicht im IE und ich weiß nicht, wie es zu beheben
Sollten Sie etwas wie, dass in Ihrem code.
text/plain
, nicht html.