下面代码下载太快了,过一会就会下载失败,想添加个延时,非码农,不懂js,网上找了半天弄不好,麻烦大佬指教下。
if(document.location.pathname.indexOf("onlinebook")>0){
document.body.oncontextmenu = ""
var pageTotal = 0;
var picUrl = ""
//从0开始,为实际页码减一
var pageCurrent = 0;
//下载指定页面图片
function downloadPic(page) {
picUrl = path + "&pageNo=" + page ;
fetch(picUrl).then(res => res.blob().then(blob => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
}))
}
//批量下载
function batchDownload() {
pageTotal = document.getElementById("sumNumb").innerText - 1;
downloadPic(pageCurrent)
}
//创建下载按钮
var downloadBtn = document.createElement("a");
downloadBtn.innerText = "批量下载全书";
downloadBtn.onclick = function () { batchDownload() };
document.querySelector("body > div.divcenter > div.bq > div.bqmiddle > div.ml").appendChild(downloadBtn);
}
热议
推荐楼 HOH 半小时前
不管啥语言,最烦的就是匿名方法
2楼 peng123 1小时前
不懂
3楼 VPSMarket 1小时前
settimeout 的回调里面再执行下载
4楼 qingseyouran 1小时前
不懂
略懂c和python,不懂js,看不懂执行逻辑
5楼 qingseyouran 1小时前
settimeout 的回调里面再执行下载
settimeout弄了好久,不知道加哪里才可以
加最后面那一段里?
8楼 靓坤 半小时前
用settimeout把fetch那里包住即可
9楼 qingseyouran 半小时前
kapai 发表于 2022-3-6 21:20
不行,只能下载第一页
10楼 qingseyouran 半小时前
用settimeout把fetch那里包住即可
好的。我试下,这个fetch套得太多
12楼 qingseyouran 半小时前
用settimeout把fetch那里包住即可
setTimeout(fetch(picUrl).then(res => res.blob().then(blob => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
})), 9000)
不行,还是下得飞起
13楼 qingseyouran 28分钟前
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
好,马上试下
14楼 qingseyouran 17分钟前
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
fetch(picUrl).then(res => res.blob().then(blob => {
new Promise((resolve, reject) => {
setTimeout(() => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
resolve()
}, 1000);
}).then(_ => {
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
})
}))
}
也只能下第一页
15楼 qingseyouran 16分钟前
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
这个嵌套回调,完全看不懂
16楼 qingseyouran 12分钟前
kapai 发表于 2022-3-6 21:20
console提示
Uncaught ReferenceError: downloadPic is not defined
at <anonymous>:1:1
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
