【问题标题】:html5 saveAs support in google chrome谷歌浏览器中的 html5 saveAs 支持
【发布时间】:2013-03-04 21:46:09
【问题描述】:

我正在尝试按照here 的解释使用saveAs 接口

目前,我只担心谷歌浏览器,我使用的是最新的 Canary(版本 27.0.1429.0 canary)

Qn1:文章说。

W3C 文件 API 包括一个 FileSaver 接口,它使保存 生成数据就像 saveAs(data, filename) 一样简单,但不幸的是 它最终将从规范中删除。

为什么会被删除?

Qn2:下面的代码。

if (window.saveAs) {
    window.saveAs(blob, name);
}else{
    console.log("saveAs not supported")
}

打印

saveAs not supported 

所以 chrome 不支持 saveAs。这不是我在网上阅读很多文章的印象。

【问题讨论】:

  • 我会立即假设,因为它会允许攻击者在用户的计算机上保存恶意文件。
  • @Daedalus:如果没有saveAs() 函数,它仍然不是完全不可能的,只需为它创建一个小小提琴jsfiddle.net/shivasaxena/qnYk4/3
  • @Shiva - 完美,效果很好 - 您应该将其发布为即将消失的功能的替代品。
  • @Shiva 很棒的解决方案,但可能没有设置为在您单击链接时立即下载。

标签: html google-chrome html5-filesystem


【解决方案1】:

这是一个 polyfill,如文章中所述。您必须加载文章中列出的 javascript 文件,将其保存在您的资源中并在您的代码中链接到它: 存储库在那里: https://github.com/eligrey/FileSaver.js

不过,Chrome 有一些限制。如果文件已经保存,则新的保存名称递增: myFile(1),然后是 myFile(2),等等。

我现在在 Chrome 上有一个错误,它告诉它不能打开文件,但这只是一个错误的警告,因为文件保存得很好,这就是重点。

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2011-11-02
    • 1970-01-01
    • 2018-10-08
    • 2010-11-18
    • 2011-06-04
    相关资源
    最近更新 更多