返回下载页面中的所有链接的JavaScript

我在EDGE上下载了一些书,但遗憾的是浏览器不再显示紫色的访问链接,我不想下载重复的文件(EDGE只是重命名重复的文件,其他下载管理器只是下载它,然后询问你该怎么做)。因此,我求助于一个只能捕获EDGE下载页面中的所有链接并将它们导出到外部文件的Java代码,在外部文件中,我将编写另一个脚本来比较该文件中的链接和打开的链接

JS代码:

    function findButton() {
  var buttons = document.querySelectorAll('button');
 for (var i = 0; i < buttons.length; i++) {

var elem = buttons[i];
var text = elem.textContent || elem.innerText;
if (text.includes("htt")){}
else {text = 0;}
      return text
  }  
}

var x = findButton();
alert(x);

检查元素:

<button class="c0124348" id="open_link292" role="link" aria-label="https://onlinelibrary.wiley.com/doi/pdfdirect/10.1002/9780470132586">https://onlinelibrary.wiley.com/doi/pdfdirect/10.1002/9780470132586</button>

Sript仅返回First按钮的值,即(下载列表按钮)=0。

注意:

  1. 按钮的属性和类名中没有任何东西是静态的(类名和ID更改)

  2. 如果您对此问题有更简单的解决方案(检查下载文件是否已存在于目标中的下载管理器或任何其他解决方案),那么我想尝试一下。


解决方案

我编辑了代码,现在它运行正常

    function findButton() {
  var buttons = document.querySelectorAll('button');
             var arr = [];
 for (var i = 0; i < buttons.length; i++) {
     var elem = buttons[i++];
var text = elem.textContent || elem.innerText;
     arr.push(text);
 }
      return arr
}

var x = findButton();
alert(x);
  1. 我忘了像Kevin B指出的那样形成一个数组,所以我声明了arr一个空数组

  2. Return语句放在了错误的行中,它应该放在for循环中

相关文章