我试图在循环中使用window.location.href来下载多个文件
我有一个表格,我可以在其中选择文件,然后我运行一个选定的循环 尝试导航到文件路径以下载文件。
我只保留下载的最后一个文件。
我认为这是因为herf仅在我的javascript完成后才采取行动,而不是代码运行。
当我在window.location.herf上有一个断点时,它仍然只下载最后一个文件,并且只有当我让代码运行时才会这样。
是否有更好的方法从javascript循环启动多个下载。
$("#btnDownload").click(function () {
var table = $('#DocuTable').DataTable();
var rows_selected = table.rows('.selected').data();
$.each(rows_selected, function (i, v) {
window.location.href = v.FilePath;
});
});
答案 0 :(得分:3)
我会使用iframe和脚本来强制下载文件,因为 Joe Enos 和 cmizzi 已经建议了。
这里的答案将有助于JavaScript为每个文件打开多个iframe: Download multiple files with a single action
如果网址实际上可以通过网络正确提供,那么流行语言的答案将有助于强制下载:
确保更改链接以指向下载脚本,并确保添加适当的安全检查。你不会想让任何人滥用你的剧本。
答案 1 :(得分:2)
在某些浏览器(至少谷歌浏览器)中支持以下内容:
$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();
$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();
$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();
JSFiddle:https://jsfiddle.net/padk08zc/