我有一个用于转换数据并将其另存为csv文件的JavaScript。看起来像这样:
function downloadCSV(args) {
var data, filename, link;
var type = args.type;
var fields = Object.keys(json_for_export[0]);
var csv = json_for_export.map(function(row){
return fields.map(function(fieldName){
return '"' + (row[fieldName] || '') + '"';
});
});
csv.unshift(fields);
csv = csv.join('\r\n')
if (csv == null) return;
filename = 'csv' + '_' + args.filename || 'export.csv';
if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + '\uFEFF' + csv;
}
data = encodeURI(csv);
link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();
}
Run Code Online (Sandbox Code Playgroud)
它可以在Chrome浏览器中正常运行,但不能在Firefox中运行。是什么原因造成的?检查控制台,然后将数据格式化为csv类型。
您需要a先将元素附加到DOM上,然后再单击它:
document.body.appendChild(link);
link.click();
Run Code Online (Sandbox Code Playgroud)
之后,您可以立即将其删除:
document.body.removeChild(link);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |