小编Spi*_*ddy的帖子

自动多次下载不再适用于Chrome

我们生产基于浏览器的通信软件,公司用于咨询.在咨询结束时,顾问可以下载视频流的录像.由于Chrome已更新至65版,因此多文件下载仅提供最后一个文件.

我们显示已保存会话的列表,当用户点击"下载"时,我们循环浏览该会话的所有记录,并像在此SO解决方案中一样下载它们: JavaScript blob文件名没有链接

var saveBlobAs = function(blob, filename){
        var url = window.URL.createObjectURL(blob);

        var a = document.createElement('a');
        document.body.appendChild(a);
        a.style = 'display: none';
        a.href = url;
        a.download = filename;
        a.click();
        window.URL.revokeObjectURL(url);
    };

for(var i = 0; i < matchedRecordings.length; i++){
        var recording = matchedRecordings[i];
        saveBlobAs(recording.blob, fileName);
    }
Run Code Online (Sandbox Code Playgroud)

代码仍然可以在FireFox上完美运行,但Chrome 65只提供最后一个文件.我可以通过将链接创建更改为来修复它

var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
a.href = url;
a.target = '_BLANK'; // Added this
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
Run Code Online (Sandbox Code Playgroud)

但现在Chrome将其视为弹出窗口并为每个文件打开新标签.

还有其他人有同样的问题吗?有没有比在新标签中打开每个链接更好的解决方案?

google-chrome click download

7
推荐指数
1
解决办法
944
查看次数

标签 统计

click ×1

download ×1

google-chrome ×1