1 循环下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $("body").on('click', '#batch-download', function () { var checkedbox = $(".file_url:checked"); if (checkedbox.length == 0) { alert('请选择要下载的数据'); return false; }
checkedbox.each(function (index, item) { const path = $(this).val(); var a = document.createElement('a'); let url = url a.href = url; a.download = id; a.click(); })
return false; })
|
这种方案每次只能下载最后一个,每次循环执行,都会覆盖上一次的时间,如果像保存每次循环的状态,那么,需要使用闭包:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $("body").on('click', '#batch-download', function () { var checkedbox = $(".file_url:checked"); if (checkedbox.length == 0) { alert('请选择要下载的数据'); return false; }
checkedbox.each(function (index, item) { const path = $(this).val(); var timer1 = setTimeout(function (path) { return function () { var iframe = $("<iframe class='downloadIfream' src='" + path + "' style='height:0;display:none'></iframe>") $("body").append(iframe) var timer2 = setTimeout(function () { iframe.remove() clearTimeout(timer2) }, 5000) clearTimeout(timer1) } }(path), 1000 * index)
})
return false; })
|
单个文件下载:
a标签 模拟点击事件
1 2
| window.location.href = 下载接口地址 window.open(“下载接口地址”)
|
都可以实现,比较简单
Reference
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。