繁体   English   中英

如何使用JS在下载的文本文件中添加换行符

[英]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> 

https://jsfiddle.net/1L2vmdhu/

请尝试下面的示例,因为您要以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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM