Javascript 导出文本文件在 Firefox 中无法识别\r\n

标签 javascript firefox

我正在使用以下代码创建一个用于从 javascript 下载的文本文件:

var lineFeed = "\r\n";
var errorFile = "";

errorFile = "This is a test" + linefeed;
errorFile = errorFile + "Line 2";

var link = document.createElement("a");

link.download = 'test_errors.csv';
 link.href = 'data:application/text/html,' + errorFile;

 document.body.appendChild(link);
 link.click();

 // Cleanup the DOM
 document.body.removeChild(link);
 link = null;

它在 Chrome 中按预期工作,但从 Firefox 下载的文件不返回换行符和回车符。知道我是否需要另一个转义字符或其他字符吗?

最佳答案

显然浏览器对待空白的方式不同。 base64 编码可能是最安全的,但您可能只使用 url 编码。

使用“%0D%0A”代替“\r\n”。但是,因为您可能拥有真实数据,并且真实数据可能包含其他破坏事物的字符(例如引号字符),所以我建议您对整个字符串进行 url 编码:

link.href = 'data:application/text/html,' + encodeURIComponent(errorFile);

关于Javascript 导出文本文件在 Firefox 中无法识别\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372533/

相关文章:

javascript - 调整 flexbox 中图像的大小在 Chrome 中渲染不正确

c++ - Firefox pr_write 钩子(Hook)。 dll 注入(inject),Windows 钩子(Hook)

http - 我可以从 Firebug 的网络面板中复制网页发出的 HTTP 请求列表吗?

javascript - Puppeteer 错误,在抓取白页时无法读取未定义的属性 'getProperty'

JavaScript 不会对数字求和

javascript - Google map - 使用 API 获取放置方向并查找该特定路线上的流量

javascript - 如何在 Firefox 插件中使用 Javascript 将图像上传到 ImgBB API

html - Firefox 18 奇怪的 Canvas 背景行为

javascript - 如何使用函数返回的对象?

javascript - CORS 是否意味着您将不会再在控制台中看到同源策略错误?