' \ n'在JavaScript中创建文本文件时会被忽略?

时间:2018-01-02 11:21:41

标签: javascript

我尝试使用一个字符串(称为'摘要')创建一个文本文件作为唯一内容。摘要由许多不同的行组成,所以我使用' \ n'非常多。但是,创建的文本文件将字符串写入一行。为什么' \ n被忽略?

这是我使用的功能:

 function writeToTxt(summary){
  var fileType = "text/txt";
  var fileName = Date.now()+".txt";

  var blob = new Blob([summary], { type: fileType });

  var a = document.createElement('a');
  a.download = fileName;
  a.href = URL.createObjectURL(blob);
  a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
  a.style.display = "none";
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  setTimeout(function() { URL.revokeObjectURL(a.href); }, 1500);
}

谢谢!

1 个答案:

答案 0 :(得分:2)

您的文件创建代码很好,但\n不是Windows上的换行符(它位于* nix上)。如果您在Windows上查看该文件,那可能就是您没有看到换行符的原因。对于Windows,它是\r\n

如果我使用\r\n,您的代码在Windows上运行正常,如果我只使用\n,则在* nix上运行。 (许多* nix工具也会处理\r\n行结尾,那里有很多类似Windows的文本文件......)