通过Javascript导出CSV - 可以在Firefox和IE中导出

时间:2016-08-30 02:47:32

标签: javascript google-chrome csv firefox downloadfile

作为我的头衔,我研究了很多线程,但我没有解决我的问题。

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”时我缺少什么?

0 个答案:

没有答案