有没有一种方法可以将JavaScrip变量中的字符串转换为用户单击按钮即可下载的可下载文件?
谢谢你的建议。
<div id="txt">Lorem Ipsum</div>
<br />
<button id="test">Download text as file !</button>
发布于 2014-07-23 05:27:27
您可以像在adeneo的答案中那样使用data: URI,但另一种方法是使用HTML5 Blob and createObjectURL (类似地,使用download属性创建下载链接)。
使用createObjectURL的好处是,在大多数浏览器中,数据URI都有严格的大小限制。
摘自链接文章的示例代码:
var typedArray = GetTheTypedArraySomehow();
var blob = new Blob([typedArray], {type: 'application/octet-binary'});
// pass a useful mime type here
var url = URL.createObjectURL(blob);
// url will be something like: blob:d3958f5c-0777-0845-9dcf-2cb28783acaf
// now you can use the url in any context that regular URLs can be used
// in, for example img.src, etc.
发布于 2014-07-23 05:35:00
要存储javascript变量,我建议您使用libraries of data storage just like this one。你可以设置一个变量,获取它,删除它...
$.setData("key","value");
$.getData("key");
$.removeData("key");
但是,要将其存储在文件中并使其可下载,您必须经过服务器,除非您使用javascript技巧下载一个不存在的文件,您只需声明这些函数
var Download =
{
click : function(node) {
var ev = document.createEvent("MouseEvents");
ev.initMouseEvent("click", true, false, self, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
return node.dispatchEvent(ev);
},
encode : function(data) {
return 'data:application/octet-stream;base64,' + btoa( data );
},
link : function(data, name){
var a = document.createElement('a');
a.download = name || self.location.pathname.slice(self.location.pathname.lastIndexOf('/')+1);
a.href = data || self.location.href;
return a;
}
};
Download.save = function(data, name)
{
this.click(
this.link(
this.encode( data ),
name
)
);
};
当你想下载一个文件时,你可以这样做
Download.save("data to be on a file","FileName.txt");
最后,您需要将数据存储和filedownload解决方案结合起来,以获得您所要求的结果
https://stackoverflow.com/questions/24898044
复制相似问题