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

Posted

技术标签:

【中文标题】javascript返回下载页面中的所有链接【英文标题】:javascript to return all links in download page 【发布时间】:2022-01-17 22:07:27 【问题描述】:

我在 edge 上下载了一些书籍,但遗憾的是浏览器停止以紫色显示访问过的链接,我不想下载重复文件(edge 只是重命名重复文件,其他下载管理器只是下载它然后问你要什么做)。所以我使用了一个 javascript 代码,它可以捕获边缘下载页面中的所有链接并将它们导出到一个外部文件,我将在其中编写另一个脚本来比较这个文件中的链接和打开的链接

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>

脚本只返回第一个按钮的值,即(下载列表按钮)= 0。

注意:

    按钮的属性和类名中没有什么是静态的(类名和 id 发生变化)

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

【问题讨论】:

办公桌上的记事本。这将是一种比构建一个跟踪您下载内容的单一用途工具更有效/高效的方法。在你离开之前记下最后一个,你就知道下一步从哪里开始。 @KevinB,损坏已经造成。我有数百次下载。所以,我需要自动保存他们的链接(我说的是不少于 150-200) 我不认为你这样做,但需要保存他们的链接。文件管理器已经有办法告诉您正在查看的文件夹中存在哪些文件。 @KevinB,不过我没说清楚。我在几分钟内下载了很多链接,所以下载是在后台形成的,一直按下下载按钮弹出窗口会非常困难 这不会改变任何事情。它们还在那里,在文件夹中。 【参考方案1】:

我编辑了代码,现在可以正常工作了

    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);

    正如 KevinB 所指出的,我忘记形成一个数组,所以我声明 arr 一个空数组

    return 语句在 for 循环中被放置在错误的行中

【讨论】:

感谢您发布此问题的解决方案。您可以在 48 小时后将您的答案标记为已接受的答案,此时可以标记。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解。

以上是关于javascript返回下载页面中的所有链接的主要内容,如果未能解决你的问题,请参考以下文章

如何用 JavaScript 给当前网页中的所有链接后面添加随机数

网页链接下载工具

vue项目-pdf预览和下载,后台返回文件流形式

用javascript判断用户是不是登陆未登陆返回登录页

OracleXEUniv在win7下如何安装

转:javascript获取上一访问页面