Firefox下载csv文件两次

uinbv5nw  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(169)

我创建了一个下载CSV文件的函数,该函数在chrome中运行良好,但当我在firefox中下载文件时,文件被下载了两次,一个文件使用提供的名称,另一个使用随机文本

const handleDownloadClick = async () => {  
    const csv = orderGuideData.map((item: any) => {
      return [
        user?.business?.name,
        item.item,
        item.ddCategory1 ? item.ddCategory1:"", 
        item.ddCategory2 ? item.ddCategory2:"", 
        item.supplier.replace(/,/g, " "),
        item.quantity ? item.quantity.toFixed(2) : 0,
        item.unitPrice ? item.unitPrice.toFixed(2) : 0,
        item.tot ? item.tot : 0,
      ];
    });
    if (csv) { const csvData = [["Business","ITEM","DASHY CATEGORY 1","DASHY CATEGORY 2", "DISTRIBUTOR", "QTY", "COST", "TOTAL"]].concat(csv);
      const rows = csvData;
      let csvContent = "";

      rows.forEach(function(rowArray) {
          let row = rowArray.join(",");
          csvContent += row + "\r\n";
      });
      
      var encodedUri = "data:text/csv;charset=utf-8,%EF%BB%BF" + encodeURIComponent(csvContent);
      window.open(encodedUri);
      var link = document.createElement("a");
      link.setAttribute("href", encodedUri);
      link.setAttribute("download", "Dashy-Dash-Order-Guide.csv");
      document.body.appendChild(link);

      link.click();
    }
  };
lymgl2op

lymgl2op1#

您已经为链接设置了href属性,然后调用link.click()
那么,为什么还要使用window.open(encodedUri);呢?

相关问题