Javascript 将多个文本区域保存到可下载的.txt文件中,并保留格式

Javascript 将多个文本区域保存到可下载的.txt文件中,并保留格式,javascript,Javascript,我正在做一个项目,需要用户在填充多个文本区域后生成一个.txt文件。但是,这些文本区域中需要保留格式(特别是换行符)。我研究并改编的代码将其包装成一个blob,这(我认为)就是问题所在,导致.txt将所有文本区域的内容简单地连接成一个连续的行 HTML: 关于如何生成一个.txt文件来维护php连接中指定的文本区域内的行和换行符,有什么想法吗?我将您的代码转换为可运行的代码段。要尝试它,请单击“显示代码段”,然后单击“运行代码段”按钮 当我运行这个代码段时,我会看到我在文本区域中输入的所有换行符

我正在做一个项目,需要用户在填充多个文本区域后生成一个.txt文件。但是,这些文本区域中需要保留格式(特别是换行符)。我研究并改编的代码将其包装成一个blob,这(我认为)就是问题所在,导致.txt将所有文本区域的内容简单地连接成一个连续的行

HTML:


关于如何生成一个.txt文件来维护php连接中指定的文本区域内的行和换行符,有什么想法吗?

我将您的代码转换为可运行的代码段。要尝试它,请单击“显示代码段”,然后单击“运行代码段”按钮

当我运行这个代码段时,我会看到我在文本区域中输入的所有换行符。请注意,如果使用Windows记事本打开这些文件,它将无法正确显示换行符。用WindowWordPad或一些编程编辑器打开它,应该会显示换行符

也许这不是你问题的答案,因为它不涉及任何代码更改,只是你用来检查输出的工具。如果您想在Windows记事本上使用此功能,请使用
\r\n
而不是
\n

函数saveTextToFile(){
var textToSave=document.getElementById(“text1Input”).value+“\n\ntext2Input\n\n”+document.getElementById(“text2Input”).value;
var textToSaveAsBlob=新Blob([textToSave],{type:“text/plain”});
var textToSaveAsURL=window.URL.createObjectURL(textToSaveAsBlob);
var fileNameToSaveAs=document.getElementById(“fileInput”).value;
var downloadLink=document.createElement(“a”);
downloadLink.download=fileNameToSaveAs;
downloadLink.innerHTML=“下载文件”;
downloadLink.href=textToSaveAsURL;
downloadLink.onclick=destroyClickedElement;
downloadLink.style.display=“无”;
document.body.appendChild(下载链接);
downloadLink.click();
}
函数销毁ClickedElement(事件){
document.body.removeChild(event.target);
}




将文本保存到文件
Blob对象正常。您看不到换行符,因为
\n
不是Windows换行符,某些编辑器不显示它。如果您用记事本++打开文件,您将看到正确的换行符。然而,记事本显示连接的文本

您需要将Javascript中的
\n
替换为
\r\n
。使用正则表达式:

var textToSave = document.getElementById("text1Input").value.replace(/([^\r])\n/g, "$1\r\n") + "\r\n\r\ntext2Input\r\n\r\n" + document.getElementById("text2Input").value.replace(/([^\r])\n/g, "$1\r\n");

标签错了?这里没有PHP。你有JavaScript,谢谢你的关注@Kevin_Kinsey。更新!非常感谢。标记为正确的JS转换修复程序。
function saveTextToFile() {
    var textToSave = document.getElementById("text1Input").value + "\n\ntext2Input\n\n" + document.getElementById("text2Input").value;
    var textToSaveAsBlob = new Blob([textToSave], {type:"text/plain"});
    var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
    var fileNameToSaveAs = document.getElementById("fileInput").value;

    var downloadLink = document.createElement("a");
    downloadLink.download = fileNameToSaveAs;
    downloadLink.innerHTML = "Download File";
    downloadLink.href = textToSaveAsURL;
    downloadLink.onclick = destroyClickedElement;
    downloadLink.style.display = "none";
    document.body.appendChild(downloadLink);

    downloadLink.click();
  }

  function destroyClickedElement(event) {
    document.body.removeChild(event.target);
  }
var textToSave = document.getElementById("text1Input").value.replace(/([^\r])\n/g, "$1\r\n") + "\r\n\r\ntext2Input\r\n\r\n" + document.getElementById("text2Input").value.replace(/([^\r])\n/g, "$1\r\n");