【问题标题】:Data URI doesn't work with IE数据 URI 不适用于 IE
【发布时间】:2013-06-21 10:31:03
【问题描述】:

我正在尝试使用用户可以下载的 javascript 动态创建 CSV 文件。这只能在 IE 中工作。

javascript 生成的 html 看起来像这样

 <a href="data:application/octet-stream,field1%2Cfield2%0Afoo%2Cbar%0Agoo%2Cgai%0A">CSV</a>

哪些接缝在 chrome 中可以正常工作,但 IE10 就坏了。

有没有更好的方法来使用 JavaScript 动态创建文件,然后为用户提供下载链接?由于用户设置的限制,我不能使用 PHP,因为整个系统需要在客户端运行。系统都需要在触摸屏上工作(没有右键单击选项),因此链接需要让用户能够下载,而不是打开文件。

【问题讨论】:

    标签: html internet-explorer stream


    【解决方案1】:

    Internet Explorer 10 不支持 a 元素上的 data 协议。根据the documentation,唯一支持的元素/属性如下:

    • 对象(仅限图片)
    • img
    • 输入类型=图像
    • 链接
    • 接受 URL 的 CSS 声明,例如 background、backgroundImage 等。

    您应该知道,您尝试做的事情听起来像是一次网络钓鱼尝试;因此,您不应该期望浏览器支持这种模式。您可以在论文Phishing by data URI 中阅读有关 data-uri 网络钓鱼的更多信息。

    【讨论】:

    • 您好,谢谢。我正在开发的是一个用于国家医疗保健服务(英国)的应用程序,它是一个他们规定必须作为网页运行的调查系统,只能在客户端运行,但允许他们下载调查数据。我通过使用基于 SWF 的下载器解决了我的问题,但感谢您的回复。
    • @CJH 你为什么不直接生成一个链接?它也可以在 IE 中运行,并且不需要 flash...stackoverflow.com/questions/42767200/…
    【解决方案2】:

    我也遇到了同样的问题,我用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 等。对于所有其他类型的文件,它看起来都很棒!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 2011-06-10
      • 2012-03-28
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多