如何使用Javascript创建和下载csv文件?

如何使用Javascript创建和下载csv文件?,javascript,csv,internet-explorer-8,internet-explorer-9,encodeuricomponent,Javascript,Csv,Internet Explorer 8,Internet Explorer 9,Encodeuricomponent,我在按钮中有以下代码: var csvContent = "data:text/csv;charset=utf-8,"; csvContent += myCSVcontent; var encodedUri = encodeURI(csvContent); window.open(encodedUri); 这在Chrome、Safari和Firefox中都能完美运行。 -但不是IE8-我需要Internet Explorer 8兼容性 当我单击调用上面代码的按钮时,它会将.csv文件下载到我

我在按钮中有以下代码:

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
这在Chrome、Safari和Firefox中都能完美运行。
-但不是IE8-我需要Internet Explorer 8兼容性

当我单击调用上面代码的按钮时,它会将.csv文件下载到我的计算机。
但当我点击IE8中的按钮时,它会打开一个新的IE8窗口,其中包含地址栏中的所有csv内容,并且不会下载(或要求下载)任何内容

不幸的是,我必须有IE8兼容性。我怎样才能做到这一点

编辑:我必须避免对服务器进行任何其他调用。一切都需要在客户端发生。目前,除了IE8(可能还有IE9)之外,所有浏览器都可以使用此功能

Edit2:当我将最后一行更改为“document.location.href=encodedUri;”时,它仍将在所有其他浏览器上工作,但在IE8中,当我单击按钮时,会出现一个错误窗口,显示“传递给系统调用的数据区域太小”。知道这告诉我什么吗?

“data:text/csv;”是HTML5,因此它不适用于IE8,我可以使用ActivexObject解决这个问题,但它正在将文件写入用户的桌面,没有弹出窗口

var csv = new ActiveXObject("scripting.FileSystemObject");
var fLoc = csv.CreateTextFile(fileName);
fLoc.WriteLine(csvData);
fLoc.close();

Chrome中可能存在的副本将被阻止为弹出窗口(至少在v35中是这样)。