我正在使用javascript將數據導出到csv。 由於某些原因,我不允許使用傳統的 <a download="filename.csv" /a>
來設置文件名。如何在window.location.href中指定csv文件名下載
我有下面的代碼行:
window.location.href = "data:text/csv;base64," + csvdata
在哪裏,我怎麼可以插入並指定文件名和擴展名,使其工作?
我正在使用javascript將數據導出到csv。 由於某些原因,我不允許使用傳統的 <a download="filename.csv" /a>
來設置文件名。如何在window.location.href中指定csv文件名下載
我有下面的代碼行:
window.location.href = "data:text/csv;base64," + csvdata
在哪裏,我怎麼可以插入並指定文件名和擴展名,使其工作?
這是不可能的方式,嘗試用它點擊這樣效仿<a href=..
:
var csvdata = "Hello World"; // only for test
var byteNumbers = new Uint8Array(csvdata.length);
\t \t for (var i = 0; i < csvdata.length; i++)
\t \t {
\t \t \t byteNumbers[i] = csvdata.charCodeAt(i);
\t \t }
\t \t var blob = new Blob([byteNumbers], {type: "text/csv"});
// Construct the uri
\t \t var uri = URL.createObjectURL(blob);
\t \t // Construct the <a> element
\t \t var link = document.createElement("a");
\t \t link.download = 'myfile.csv';
\t \t link.href = uri;
\t \t document.body.appendChild(link);
\t \t link.click();
\t \t // Cleanup the DOM
\t \t document.body.removeChild(link);
\t \t delete link;
這是絕對不可能的其他方式? PHP可以指定標題,我想知道是否有任何JavaScript等價物。 – WABBIT0111
有。但不是'window.location'屬性。這爲瀏覽器提供了一個新的URL,它希望這些標題來自該URL服務器端 - 標題的性質。 –
僅供參考,我使用角度。用ng-click來觸發一個函數。由於某些方面,我不會也不能創建標籤。因此會有另一種方式來指定window.location.href來指定文件名? – WABBIT0111