下载Blob文件忽略下载属性

时间:2016-11-03 15:49:57

标签: javascript hyperlink download blob

我通过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

1 个答案:

答案 0 :(得分:0)

我无法发表评论(因为我的声誉很低)所以我会打赌得到正确答案。 点击()后试试这个:

a.click();
setTimeout(function(){
    document.body.removeChild(a);
    window.URL.revokeObjectURL(fileURL);  
}, 100);

您的代码也适用于我,但有时您需要延迟才能正常使用blob。我总是使用这个,并且每个问题(几乎)都会随着斑点而消失。 https://jsfiddle.net/h74wca11/6/