[英]How to add line break in downloaded text file using js
我正在尝试以文本格式下载div内容。
我可以以txt格式下载div内容,但所有内容都在同一行。
我需要在每个元素中添加换行符。
function download() { var a = document.body.appendChild( document.createElement("a") ); a.download = "export.txt"; a.href = "data:text/html," + document.getElementById("show-data").innerHTML; a.click(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="show-data"> <p>one</p> <p>two</p> <p>Three</p> </div> <button onClick="download()">Download</button>
请尝试下面的示例,因为您要以url形式传递数据,因此必须编码换行符才能使其正常工作,另一件事是您尝试以文本形式下载,因此将内容类型更改为“文本/纯文本”
function download() { var a = document.body.appendChild( document.createElement("a") ); var textToWrite = document.getElementById("show-data").innerText; a.download = "export.txt"; textToWrite = textToWrite.replace(/\\n/g, "%0D%0A"); a.href = "data:text/plain," + textToWrite; a.click(); }
<div id="show-data"> <p>one</p> <p>two</p> <p>Three</p> </div> <button onClick="download()">Download</button>
编辑。
您可以将\\ r \\ n添加到所有行的末尾,并在将文本输出输出到文本文件之前在文本输出上使用encodeURIComponent。 我在这里加了
https://jsfiddle.net/1L2vmdhu/11/
我像这样更改了javascript以使其正常工作。
function download() {
var a = document.body.appendChild(
document.createElement("a")
);
a.download = "export.txt";
var list = document.getElementsByTagName("p");
var b = "";
for (var i = 0; i < list.length; i++) {
console.log(list[i].innerHTML);
b += list[i].innerHTML + "\r\n";
}
b = encodeURIComponent(b);
a.href = "data:text/html," + b;
a.click();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.