我正在编写一个脚本来大量下载pdf文件,因此我的朋友不必手动进行操作。目的是下载页面上的所有pdf,然后进入下一页。稍后再重复一遍,但是现在我已经挂了一个问题。运行脚本时出现错误:
“未捕获的TypeError:无法读取未定义的属性'href' 在downloadfile(:12:19) 在:21:11“
由于该错误,我的else语句无法转到下一页。关于这个问题有什么想法吗?不幸的是,该网站不支持jQuery。任何帮助将不胜感激!
function downloadURI(uri, name) {
var link = document.createElement("a");
link.download = name;
link.href = uri;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
delete link;
}
var links = document.getElementsByClassName('tableButtonImage');
function downloadfile(e, i) {
var text = e.href;
var pdflink =
"https://iowalandrecords.org/imagerepositoryweb/imagestream/viewimage?" +
text.substring(text.indexOf('?') + 1, text.length) +
"&text=pdf";
console.log(pdflink);
downloadURI(pdflink, "jaredspdfs" + (i + 1) + ".pdf");
if (i < links.length) {
setTimeout(function() {
downloadfile(links[i + 1], i + 1);
}, 500);
} else {
[].slice.call(document.getElementsByTagName("a")).forEach(function(ele) {
if (ele.innerHTML === "Next") {
ele.click()
}
})
}
}
downloadfile(links[0], 0);
答案 0 :(得分:0)
行号和错误消息指示此行:
var text = e.href;
如果在之前的行中添加console.log(e)
,则会看到它是未定义的或为空-表示links
数组为空。