我尝试使用用户可以下载的javascript动态创建CSV文件。这只需要在IE中工作。
javascript生成的html看起来像这样
<a href="data:application/octet-stream,field1%2Cfield2%0Afoo%2Cbar%0Agoo%2Cgai%0A">CSV</a>
哪种接缝可以在镀铬中正常工作,但IE10刚好坏了。
有没有更好的方法使用JavaScript动态创建文件,然后为用户提供下载链接?由于用户的限制,我不能使用PHP,因为整个系统需要在客户端运行。系统都需要在触摸屏上工作(没有右键单击选项),因此链接需要让用户能够下载,而不是打开文件。
答案 0 :(得分:11)
Internet Explorer 10不支持data
元素上的a
协议。每the documentation,唯一支持的元素/属性如下:
你应该知道你试图做的事情就像网络钓鱼一样;因此,您不应期望浏览器支持此模式。您可以在论文Phishing by data URI中阅读有关数据 - 网络钓鱼的更多信息。
答案 1 :(得分:0)
我遇到了同样的问题,我用Chrome以这种方式下载数据uri:
var link = document.createElement("a");
link.download = dataItem.Filename;
link.href = data;
link.click();
但它在Internet Explorer中不起作用。我找到了一个可以在Internet Explorer https://github.com/rndme/download
中工作的库对我来说唯一的问题是下载具有更长MIME类型的文件,如odt,docx等。对于所有其他类型的文件,它看起来很棒!