2011-10-03 65 views
0

可以说我有这个字符串“something1,something2”,我想下载它为“text.csv”,而无需打开新窗口(弹出)我怎么能做到这一点从一个网页。我可以点它在JS中,而不使用此:提供没有服务器端代码的文件下载网页

window.open('data:text/csv;charset=utf-8,' + str); 

或者我必须使用PHP的呢?

+0

“没有弹出”是什么意思?你为什么要这样做呢? – EricLaw

+0

如果我使用Data Uri,它将向用户打开一个新窗口,并且它没有很好的用户体验来打开新窗口,而不需要它。 – Jack

回答

1

你想要做的是有点不合常规,但它是可能的。请参阅Downloadify。这是一个JavaScript库,它依靠Flash在客户端创建文件并显示文件下载对话框。

David Walsh有一些很好的演示和信息on his blog

+0

谢谢,但我宁愿一个解决方案,而不需要额外的插件供用户安装(如flash)。 – Jack

+1

据我所知,由于浏览器沙箱/安全问题,您将无法做到这一点。依靠Flash或服务器是摆脱沙箱的方式。 – nikmd23

0

虽然有限,还存在http://en.wikipedia.org/wiki/Data_Uri

所以这是一个URL将打开图像

数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 // 8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg ==

你可以通过javascript打开这个URL来触发下载

一个CSV例如

数据:文本/ CSV,字段1%2Cfield2%0Afoo%2Cbar%0Agoo%2Cgai%0A

只需复制/粘贴或者那些到浏览器中看到他们的工作。浏览器支持有限。

IE 8例如有一个32KiB限制

+0

IE不会从DATA URI下载文件。 – EricLaw

相关问题