我想动态生成javascript文本文件,然后提供下载。目前,我可以通过以下任一解决方案获得此工作:
content = "abc123";
document.location = "data:text/octet-stream," + encodeURIComponent(content);
OR
content = "abc123";
var bb = new BlobBuilder();
bb.append(content);
var blob = bb.getBlob();
blob = blob.slice(0, blob.size, 'text/octet-stream');
var fr = new FileReader();
fr.onload = function() {document.location = this.result;}
fr.readAsDataURL(blob);
但是,当下载框出现时,这两种解决方案只会在另存为对话框中提供默认文件名“下载”。
我的问题基本上是,如何将其更改为特定文件名,例如'readme.txt'或'scene.obj'
另请注意,数据类型以前是“text / plain”,但如果使用此文档,则文档会切换到新的文本文档,而不是提供下载(如text / octet-stream似乎那样)。
我不想要一个flash解决方案,javascript / html5只能提出建议。
干杯,乔希
答案 0 :(得分:4)
为此,您必须使用FileAPI:Writer规范中的FileSaver。 目前,它只是一个草案,根据mailing list answer,它尚未在浏览器中实现。
您可以在chromium issue上观看以获取有关实施进度的最新信息
UPD 02.08.2013:我发现project使用简洁技巧提供FileSaver界面
答案 1 :(得分:0)
我认为你应该检查:jQuery Table to CSV export