我通过blob对象实现了下载,当内容大于10239个字符时,下载属性被忽略,我得到文件名,如' 2b56fc37-9b0e-4f4c-b3f3-a28113605ea5.txt &#39 ;.有人可以告诉我为什么吗?
小提琴:https://jsfiddle.net/h74wca11/4/
第一个按钮创建一个10239' X'第二个是10240' X'的文件。第一个按钮生成一个名为' test.txt '的文件。而第二个文件名是随机名称,如' 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 m(64位)
修改
我只是在隐身模式中尝试了我的小提琴 - 它有效。 WTF
答案 0 :(得分:0)
我无法发表评论(因为我的声誉很低)所以我会打赌得到正确答案。 点击()后试试这个:
a.click();
setTimeout(function(){
document.body.removeChild(a);
window.URL.revokeObjectURL(fileURL);
}, 100);
您的代码也适用于我,但有时您需要延迟才能正常使用blob。我总是使用这个,并且每个问题(几乎)都会随着斑点而消失。 https://jsfiddle.net/h74wca11/6/