无法使用Javascript指定下载文件的名称

时间:2014-05-25 21:13:33

标签: javascript jquery html google-chrome csv

我正在使用Javascript创建一个CSV文件供用户下载。

直到5月22日,Chrome仍然下载了我指定名称的文件。但是,今天我发现下载的文件名为" download"并且没有扩展名.csv。

Firefox中不存在此问题!

以下是带有示例Javascript的fiddle

var A = [['n','sqrt(n)']];  // initialize array of rows with header row as 1st item
for(var j=1;j<10;++j){ A.push([j, Math.sqrt(j)]) }
var csvRows = [];
for(var i=0,l=A.length; i<l; ++i){
    csvRows.push(A[i].join(','));   // unquoted CSV row
}
var csvString = csvRows.join("\n");

var a = document.createElement('a');
a.href     = 'data:text/csv;charset=utf-8;base64,' + window.btoa(csvString);
a.target   = '_blank';
a.download = 'myFile.csv';
document.body.appendChild(a);
a.click();

1 个答案:

答案 0 :(得分:6)

干得好!这是回归。

我刚创建了另一个fiddle,并提交了Chrome bug

如果您有兴趣,请将其加入错误跟踪器中。

<a href="/" download="my-downloaded-file.html" target="_blank">Click here</a>

编辑:看起来它取决于URL。绝对网址以及objects URLs(根据https://code.google.com/p/chromium/issues/detail?id=376197)。