Javascript 触发点击与';下载';属性

Javascript 触发点击与';下载';属性,javascript,jquery,html,google-chrome,Javascript,Jquery,Html,Google Chrome,我有一些这样的链接: <a class="download-link" href="/some/file.mp3" download="file.mp3">download></a> 从2013年开始,Chrome有可能触发下载链接的点击。这已经被弃用了吗?有没有其他办法 顺便说一下,我用的是Chrome52。理想情况下,我也会在Chrome上找到适合Android的东西 我的怀疑是,这是不可能的,因为这样一来,网站可以下载各种各样的恶意文件,如果他们愿意的话。然

我有一些这样的链接:

<a class="download-link" href="/some/file.mp3" download="file.mp3">download></a>
从2013年开始,Chrome有可能触发下载链接的点击。这已经被弃用了吗?有没有其他办法

顺便说一下,我用的是Chrome52。理想情况下,我也会在Chrome上找到适合Android的东西

我的怀疑是,这是不可能的,因为这样一来,网站可以下载各种各样的恶意文件,如果他们愿意的话。然而,由于“全部下载”按钮是一个常见的用例,我想知道是否有一些可行的方法。我不需要触发初始单击-用户将单击“下载所有”按钮,这将触发后续单击



若要自己尝试,请转到并在控制台中键入以下脚本:
$($([下载])”[0])。触发器(“单击”)

您在“.download link”中错过了类的一个点


我不知道jQuery是如何实现的,但下面的普通JavaScript成功下载了页面上的每个链接:

for (let link of document.querySelectorAll('a[download]'))
    link.click();
然后,如果我想下载多个文件,Chrome会提示我,并且可以正常工作


尽管您可能希望在执行此操作之前警告用户,因为这会使浏览器有点迟钝。

虽然您正确地认为有输入错误,但添加点并不能解决问题。在控制台中尝试并键入下面的脚本:<代码> $($(A[[下载])]。触发器(“点击”)< /代码>如果不工作,可以考虑使用Windows。打开并确保服务器正在发送MIME类型以供文件强制下载。@ J.MCNARLY,我使用的是静态服务器GITHUB页面。不确定在这种情况下我如何设置mime类型。使用rawgit我得到了一个MP3,但它播放歌曲而不是下载。实际上,您的代码失败了,出现了以下错误:无法读取null(…)的属性“trigger”;你的后端是用php写的?好吧,我的错。我看到你正在使用3.x。我尝试向元素添加ID,然后使用vanilla js触发单击。如果你可以通过向每个“可下载”链接添加增量id的循环来编辑DOM,那么你可以循环所有链接并触发。click()@Caius thank you-使用vanilla js也是rvighne回答中提出的建议。不幸的是,它似乎在我的android手机的chrome上不起作用。我有一个blackberry priv.@maxpleaner是的,移动浏览器可能没有桌面浏览器的一些更新功能。那样的话,你可能就不走运了。。。(除非你有备用服务器端方法来提供下载)。它在Ghostery android浏览器上运行,但在Chrome android或“Chrome Dev”android上不起作用。@maxpleaner你测试它的浏览器可能不支持我在回答中使用的ES6功能。如果是这样,请尝试这个等效的ES5代码:
Array.prototype.forEach.call(document.querySelectorAll('a[download]')、函数(link){link.click();})
$($(".download-link")[0]).trigger("click")
for (let link of document.querySelectorAll('a[download]'))
    link.click();