使用Javascript

时间:2019-06-11 14:18:55

标签: javascript

我正在编写一个脚本来大量下载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);

1 个答案:

答案 0 :(得分:0)

行号和错误消息指示此行:

var text = e.href;

如果在之前的行中添加console.log(e),则会看到它是未定义的或为空-表示links数组为空。