我们的应用程序从我们的显示表中获取数据,并以.csv格式为用户下载,而无需用户命名。这曾经有效,但在最近几天,Chrome必须改变他们的做法。我无法在网上找到有关更改或可能修复的任何内容。现在Chrome打开一个保存文件对话框,其默认文件名没有扩展名。关于如何让它至少允许javascript指定扩展名或完全避免保存文件对话框的任何想法?
Chrome版本:35.0.1916.114
我们的代码是:
factory.export = function (columns, people, wednesday, name) {
var d = new Date(wednesday);
var strDate = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
var exportName = strDate + ' ' + name;
var dataToSend = [];
// push the header
var header = [];
for (var k = 0; k < columns.length; k++) {
header.push('\"' + columns[k] + '\"');
}
dataToSend.push(header);
// push the body
for (var i = 0; i < people.length; i++) {
for (var j = people[i].length - 1; j >= 0; j--) {
people[i][j] = '\"' + people[i][j] + '\"';
}
dataToSend.push(people[i]);
}
var csvContent = 'data:application/csv;charset=utf-8,\uFEFF'; // this last part is to make the characters get encoded correctly
dataToSend.forEach(function (infoArray) {
var dataString = infoArray.join(',');
csvContent += dataString + '\n';
});
exportName += '.csv';
var encodedUri = encodeURI(csvContent);
var link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', exportName);
link.click(); // This will download the data file named "my_data.csv".
};