我有这样的链接:
<a class="download-link" href="/some/file.mp3" download="file.mp3">download></a>
单击此链接时,将下载文件而不提示。
我正在尝试制作一个“全部下载”按钮,但我失败了,因为它似乎无法触发点击这些链接。
例如:
$($("a[download]")[0]).trigger("click")
// this shows no error, but the file is not actually downloaded
根据2013年的this article,可以触发Chrome中下载链接的点击次数。这已被弃用了吗?有替代方法吗?
顺便说一下,我正在使用Chrome 52.理想情况下,我会在Chrome for Android上找到适用的功能。
我怀疑这是不可能的,因为如果他们愿意,网站可以下载各种恶意文件。但是,由于“全部下载”按钮是一个常见的用例,我想知道是否有一些工作方法。我不需要触发初始点击 - 用户点击“全部下载”按钮,这将触发后续点击。
要尝试自己,请转到https://maxpleaner.github.io/my_music/并在控制台中输入以下脚本:$($("a[download]")[0]).trigger("click")
答案 0 :(得分:4)
我不确定jQuery是如何做到的,但以下的vanilla JavaScript成功下载了页面上的每个链接:
for (let link of document.querySelectorAll('a[download]'))
link.click();
然后Chrome会提示我是否要下载多个文件,并且可以正常运行。
虽然您可能希望在此之前警告用户,因为它会使浏览器有点迟缓。
答案 1 :(得分:-2)
你错过了CLASS中的一个点&#34; .download-link&#34;
$($(".download-link")[0]).trigger("click")