2016-06-09 49 views
0

我有一個用於轉換數據的javascript,並將其保存爲csv文件。它看起來像這樣:用於下載csv文件的Javascript在FireFox中不起作用

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(); 
} 

它在Chrome瀏覽器中正常工作,但在Firefox中不起作用。什麼可能是問題的原因? 檢入控制檯並將數據格式化爲csv類型。

+0

哪個Firefox的版本? – Rohit416

+0

你有任何控制檯錯誤? downloadCSV如何被調用? –

回答

1

你需要點擊之前的a元素的DOM追加:

document.body.appendChild(link); 
link.click(); 

之後,你可以立即將其刪除:

document.body.removeChild(link);