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