【发布时间】:2014-01-17 13:20:25
【问题描述】:
我在一个按钮中有这个代码:
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 中,当我单击该按钮时,我得到一个错误窗口,上面写着“传递给系统调用的数据区域太小”。知道这告诉我什么吗?
【问题讨论】:
-
在 Chrome 中,这被阻止为弹出窗口(至少在 v35 中是这样)。
标签: javascript csv internet-explorer-8 internet-explorer-9 encodeuricomponent