2013-03-04 276 views
9

我想使用saveAs接口作为解释hereHTML5的saveAs谷歌浏览器支持

就目前而言,我只担心谷歌浏览器,我使用了最新的金丝雀(版本27.0.1429.0金丝雀)

Qn1:文章说。

的W3C文件API包括FileSaver接口,这使得节电 产生的数据一样简单的saveAs(数据,文件名),但不幸的是 它最终会被从该规范中移除。

为什么它会被删除?

Qn2:下面的代码。

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

打印

saveAs not supported 

因此Chrome不支持的saveAs。这不是我在网上阅读许多文章的印象。

+0

我会立即假定,因为它会允许攻击者在用户的计算机上保存恶意文件。 – Daedalus 2013-03-04 21:49:06

+5

@ Daedalus:好吧,如果没有'saveAs()'函数,它仍然不是完全不可能的,只需为它创建一个小提琴http://jsfiddle.net/shivasaxena/qnYk4/3/ – Shiva 2014-07-18 09:34:10

+0

@Shiva - 完美,很好 - 你应该将此作为一个正在消失的功能的替代品。 – 2015-11-06 23:18:45

回答

3

这是一个polyfill,正如文章中所解释的那样。你必须加载文章中列出的JavaScript文件,它在你的资源和链接保存到它在你的代码: 库是有: https://github.com/eligrey/FileSaver.js

有Chrome浏览器的限制,虽然。如果文件已保存,则新的保存名称将递增: myFile(1),myFile(2)等。

我现在有一个Chrome浏览器的错误,它告诉它可以打开文件,但它是只是一个虚假的警告,因为该文件很好的保存,这是重点。