最开始一直是a方式进行下载的,但是发现,他只会下载最后一条数据,但是在调试过程中或者alert的时候他又能全部执行下载,这真是一个很奇怪的问题,为此有以下解决办法
function download_list(dataid) {
var downloadList = dataid.split(",");
//a放到页面
downloadList.forEach(function (el, index, arr) {
var downloadUrl = '/down/?id=' + el;
var a = document.createElement('a');
$(a).addClass('J_ack')
a.href = downloadUrl;
$('body').append(a); // 修复firefox中无法触发click
})
//调用下载
$('body').find("a.J_ack").each(function (i) {
downfileByFileId($('body').find("a.J_ack")[i].href, i);
});
//5分钟之后删除
setTimeout(function () {
$('.J_ack').remove();
$('.downloadList').remove();
}, 5 * 60 * 1000);
}
function downfileByFileId(fileId, i) {
var loadFrameEm = '<iframe class="downloadList" src="' + fileId + '" style="display:none;"></iframe>';
$(document.body).append(loadFrameEm);
}
启动下载
var dataid = '3873,233,4343,4343'
//启动下载
download_list(dataid)
参考