Javascript 使用jQuery在一个页面上下载多个文件

Javascript 使用jQuery在一个页面上下载多个文件,javascript,jquery,Javascript,Jquery,我有一个页面,其中有许多文件链接可以单独下载。我认为这将是一个很好的功能,触发下载所有的文件与一个单一的点击。这是我为测试这个而写的脚本- $('tbody tr a').slice(1).each(function(){ //don't mind the slice(). console.log('starting download of: ' + $(this).attr('href')); // for debugging. $(this).attr('target','

我有一个页面,其中有许多文件链接可以单独下载。我认为这将是一个很好的功能,触发下载所有的文件与一个单一的点击。这是我为测试这个而写的脚本-

$('tbody tr a').slice(1).each(function(){  //don't mind the slice().
    console.log('starting download of: ' + $(this).attr('href')); // for debugging.
    $(this).attr('target','_blank'); //  so that a new page is opened for download.
    window.location.href = $(this).attr('href');
})

问题是该脚本只会触发第一个下载链接的下载。但是,如果我看到控制台,则会打印所有文件的日志。我认为这是因为页面重定向。有人能帮我解决这个问题吗?

你可能想在这里看到这个答案:


只需在所有链接上运行并触发ctrl+单击,即可在新页面中打开链接。

您可能希望在此处看到此答案:


只需在所有链接上运行并触发ctrl+单击,即可在新页面中打开链接。

尝试将
下载
属性替换为
window.location.href=$(this)。attr('href')
,调用
。在每个


下载所有文件
尝试将
下载
属性替换为
window.location.href=$(this).attr('href')
,调用
。单击每个



下载所有文件。
是否执行(
$)。单击()
是否有效?是否可以尝试在单击按钮时动态包含脚本?@完全没有。我已经尝试过了。这也只是记录控制台中的所有文件,而不是开始下载。@HardikVaghani:我不明白你的意思。你能再解释一下吗?你说的下载是什么意思?您想在pageDoes
$(此)中显示脚本或包含脚本。单击()
工作?您可以尝试在单击按钮时动态包含脚本吗?@完全没有。我已经尝试过了。这也只是记录控制台中的所有文件,而不是开始下载。@HardikVaghani:我不明白你的意思。你能再解释一下吗?你说的下载是什么意思?您想在页面中显示脚本或包含我已经添加了
target=''blank'
,它本质上与ctrl+具有相同的效果click@Abhishek更改window.location和触发ctrl+click不能相同,如果看起来一样的话也可以。我已经添加了
target=''u blank'
,它本质上与ctrl+具有相同的效果click@Abhishek更改window.location和触发ctrl+click不能相同,如果看起来相同的话。此页面没有在链接上定义的
download
属性。所以我通过迭代和执行
$(this).attr('target','u blank').attr('download',filename)来添加它。但即使在这之后,
.click()
也不会开始文件下载。您是否尝试过stacksnippets的
js
?您是否调用了链接到
$(this).attr('target','u blank').attr('download',filename)
?尝试调用
this。在
DOM
元素上单击()
,而不是jQuery对象。谢谢!第二种方法,即,
this.click()
有效。这意味着什么?等等,这只触发了6次下载。其余的呢?“等等,这只触发了6次下载。其余的呢?”你是什么意思?这个页面没有链接上定义的
download
属性。所以我通过迭代和执行
$(this).attr('target','u blank').attr('download',filename)来添加它。但即使在这之后,
.click()
也不会开始文件下载。您是否尝试过stacksnippets的
js
?您是否调用了链接到
$(this).attr('target','u blank').attr('download',filename)
?尝试调用
this。在
DOM
元素上单击()
,而不是jQuery对象。谢谢!第二种方法,即,
this.click()
有效。这意味着什么?等等,这只触发了6次下载。其他人呢?“等等,这只触发了6次下载。其他人呢?”你是什么意思?