如何在window.location.href

时间:2015-10-16 23:09:12

标签: javascript angularjs csv encoding

我使用javascript将数据导出到csv。 由于某种原因,我不允许使用传统的 <a download="filename.csv" /a> 设置文件名。

我有以下代码行:

window.location.href = "data:text/csv;base64," + csvdata

我在哪里以及如何插入并指定文件名和扩展名以使其有效?

1 个答案:

答案 0 :(得分:6)

这种方式不可能,只需点击它就可以模仿<a href=..

        var csvdata = "Hello World"; //  only for test
        var byteNumbers = new Uint8Array(csvdata.length);

		for (var i = 0; i < csvdata.length; i++)
		{
			byteNumbers[i] = csvdata.charCodeAt(i);
		}
		var blob = new Blob([byteNumbers], {type: "text/csv"});
   
        // Construct the uri
		var uri = URL.createObjectURL(blob);

		// Construct the <a> element
		var link = document.createElement("a");
		link.download = 'myfile.csv';
		link.href = uri;

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

		// Cleanup the DOM
		document.body.removeChild(link);
		delete link;