作为我的头衔,我研究了很多线程,但我没有解决我的问题。
function DownloadCSV(obj = null, filename = null){
var data = obj;
var csv = ConvertToCSV(data); //Don't mind, my data are good, I checked it.
var fileName = filename;
if (navigator.userAgent.search("Firefox") >= 0) {
//For firefox
var downloadLink = document.createElement("a");
downloadLink.setAttribute("href", "data:text/csv;charset=utf-8,%EF%BB%BF" + encodeURI(csv));
downloadLink.setAttribute("download", ""+fileName+".csv");
document.body.appendChild(downloadLink);
downloadLink.click();
} else {
//For chrome
var downloadLink = document.createElement("a");
downloadLink.setAttribute("href", "data:text/csv;charset=utf-8,%EF%BB%BF" + encodeURI(csv));
downloadLink.setAttribute("download", ""+fileName+".csv");
downloadLink.click();
}
}
注意:我的数据是包含UTF8字符集的亚洲字符。
问题:我的代码在Chrome中运行良好,我可以下载CSV文件并在Excel中正确打开;但它在Firefox和IE10中出错。
在Firefox中,我也可以下载文件,但它不是CSV扩展名。它类似于“r1ruu9fa.part”而不是“Test.csv”。我的.part文件中的数据是正确的。它只是文件扩展名不正确。
我尝试在Firefox中调试“downloadLink”变量,我看到我的文件名仍然是“Test.csv”,但是当点击下载时,它已被更改。
问题:那么在配置变量“downloadLink”时我缺少什么?