为什么我的csv下载按钮仅适用于Chrome

时间:2017-12-20 22:31:49

标签: javascript google-chrome button download safari

我正在开发一个项目,我必须在单击按钮时下载csv文件。显然,该下载仅适用于 Chrome 。请帮我弄清楚我应该对我的代码做些什么来使下载能够在所有浏览器上运行(例如Edge,Firefox,Safari ......)

另请注意,在Safari上而不是下载时,它会在新选项卡中打开csv文件。

这是我的代码:

function download(csv) {
    var element = document.createElement('a');
    element.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
    element.target = '_blank';
    element.download = 'services.csv';
    element.click();
}

2 个答案:

答案 0 :(得分:0)

创建类似于以下示例的标记。使用“下载”属性。

<a href="link/to/your/download/file" download>Download link</a>

Target =“_ blank”将导致文件在下载开始前在新标签页中打开,如果您想添加该文件。

<a href="link/to/your/download/file" download="filename">Download link</a>

如果您将download属性设置为字符串,则下载的文件将使用该值作为名称。

答案 1 :(得分:0)

考虑使用第三方库来代替重建轮子。对于像这样的问题,download.js是一个非常棒的跨平台库。为了让您的代码使用此库,您可能会执行以下操作:

download(your_csv_data, "services.csv", "text/csv");

查看文档链接和更多很酷的示例。