这个问题在这里已经有一个答案:

HTML5介绍了Filewriter类。有了这个课程,您可以制作斑点。 (文件是斑点的扩展。)使用JavaScript,您可以制作斑点,例如使用DataUrl显示它。

例子:

var bb = new BlobBuilder();
bb.append('some text')
var blob = bb.getBlob('text/plain');

var fr = new FileReader();
fr.onload = function(e) {
 document.location = this.result; // voila the dataURL
}
fr.readAsDataURL(blob);

但这还不够好:)我希望下载新创建的(文本)文件。未在同一或单独的窗口中打开。

有办法吗?必须有。如何?

(讨论已经存在于 Google Chrome Group)

更新
文件API已更改,因为规格已更改(或其他!?)。 Webkit与向后兼容 BlobBuilder, ,现在叫 WebKitBlobBuilder. 在JSFIDDLE上以不同的示例

更新
现在,创建斑点再次有所不同(不再 append()):

blob = new Blob(['some text'], {type: 'text/plain'});
有帮助吗?

解决方案

与Blob对象结合使用的下载标签可以解决问题(至少在最新的Chrome版本中)。看到这个 小提琴:

var blob = new Blob(['blaaaaat'], {type: 'text/plain'});
$('a').attr("href", window.URL.createObjectURL(blob));
$('a').attr("download", "woeii.txt");

f̶i̶r̶e̶f̶o̶x̶d̶o̶e̶e̶s̶s̶s̶s̶s̶s̶s̶p̶p̶p̶o̶p̶o̶t̶关于Firefox中下载属性实施的讨论 在这里可用:

编辑: 截至2013年10月3日,下载属性现在由最新的Firefox版本支持

其他提示

这里有一个 纯JavaScript解决方案 用于创建文本斑点并下载为文本文件

var fileContent = 'This is sample text file';
var fileName = 'sampleFile.txt';

const blob = new Blob([fileContent], { type: 'text/plain' });
const a = document.createElement('a');
a.setAttribute('download', fileName);
a.setAttribute('href', window.URL.createObjectURL(blob));
a.click(); // EXECUTING CLICK EVENT WILL AUTO-DOWNLOAD THE FILE
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top