我通过blob对象实现了下载,当内容大于10239字符时,下载属性将被忽略,文件名为'2b56fc37-9b0e-4f4c-b3f3-a28113605ea5.txt‘。有人能告诉我为什么吗?
小提琴:https://jsfiddle.net/h74wca11/4/
第一个按钮创建一个10239 'X‘的文件,第二个按钮创建一个10240 'X’的文件。第一个按钮生成一个名为“test.txt”的文件,而第二个文件名是arandom名称,如'8cd3dc83-b3fe-4e58-99b0-39a876107a2d.txt‘。
我使用以下代码:
function myFunction(count) {
content = '';
for (var i = 0; i < count; i++) {
content += 'X';
}
var file = new Blob([content], {
type: 'text/plain'
});
var fileURL = URL.createObjectURL(file);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = 'test.txt';
document.body.appendChild(a);
a.click();
}我在Windows 10上运行Chrome 54.0.2840.71米(64位)
编辑
我只是用伪装的方式试了一下我的小提琴--而且起作用了。WTF
发布于 2016-11-03 21:00:54
我不能发表评论(因为我的名声很低),所以我打赌答案是正确的。在click()之后尝试这样做:
a.click();
setTimeout(function(){
document.body.removeChild(a);
window.URL.revokeObjectURL(fileURL);
}, 100);您的代码对我也很好,但有时您需要延迟才能与blobs一起工作。我总是用这个,所有的问题(几乎)都会消失。https://jsfiddle.net/h74wca11/6/
https://stackoverflow.com/questions/40405918
复制相似问题