短时间内下载只能10个文件,因此增加延时机制
代码如下:
var monitorObj = {
imgTotal: 0,
imgLoaded: 0
};
var createA = function (obj) {
var a = document.createElement("a");
a.id = obj.id;
a.target = "_blank";
a.href = obj.url;
a.download = obj.url;
document.body.appendChild(a);
}
var imgs = document.images;
for (var i = 0; i < imgs.length; i++) {
var obj = {
id: "img_" + i,
url: imgs[i].src
}
if (["JPG", "JPEG", "PNG", "GIF"].indexOf(obj.url.substr(obj.url.lastIndexOf(".") + 1).toUpperCase()) < 0) {
continue;
}
if (imgs[i].width <= 50 || imgs[i].height <= 50) {
continue;
}
monitorObj.imgTotal++;
createA(obj);
}
console.log("已生成下载链接:" + monitorObj.imgTotal);
var downloadIndex = 0;
function downloadWithDelay() {
if (downloadIndex < imgs.length) {
var a = document.getElementById("img_" + downloadIndex);
if (a) {
a.click();
monitorObj.imgLoaded++;
}
downloadIndex++;
// 设置每次下载的间隔时间(这里是 100ms)
setTimeout(downloadWithDelay, 100);
} else {
console.log("已下载完成:" + monitorObj.imgLoaded + "/" + monitorObj.imgTotal);
}
}
// 开始下载
downloadWithDelay();