如何下载一组使用javascript元素的文件?
考虑以下代码: 我在页面上有一个按钮,当我点击它时,它会下载图片如何下载一组使用javascript元素的文件?,javascript,html,Javascript,Html,考虑以下代码: 我在页面上有一个按钮,当我点击它时,它会下载图片 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=ed
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Test Download</title>
</head>
<body>
<button onclick="handleDownload()">download</button>
<script>
// Assume these urls are valid and can been downloaded in the
same domain
var urls = ['url1', 'url2', 'url3'];
function handleDownload() {
for (var url of urls) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', '-');
a.click();
}
}
</script>
</body>
</html>
测试下载
下载
//假设这些URL是有效的,并且可以在
同一领域
变量URL=['url1','url2','url3'];
函数handleDownload(){
for(url的变量url){
var a=document.createElement('a');
a、 setAttribute('href',url);
a、 setAttribute('download','-');
a、 单击();
}
}
问题是当我点击下载按钮时,它会发送所有请求,但只下载一张图片,所以我不知道问题出在哪里
a.click()
执行太快还是其他原因?
var链接=[
'https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.exe',
'https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.dmg',
'https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar'
];
函数handleDownload(URL){
var link=document.createElement('a');
link.setAttribute('download',null);
link.style.display='none';
document.body.appendChild(链接);
对于(var i=0;i
测试我代码>如上所述,我想下载一些带有URL的图片。但它失败了,因为在上一个请求未连接到服务器之前,它无法发送请求。所以我评论说,如果我点击这些链接太快,它也会下载最后一个
最后,我使用window.open(url)
来完成它,而不是使用顶部显示的方式 不,它下载所有文件。至少在osx上的chrome上-下载弹出窗口只会弹出一次,可能是重复的,但当我单击“测试我”按钮时,这个演示只会下载阵列中的最后一个文件,它不是三个,在这种情况下,你可以使用zip.js(),也可以参考这里()我已经测试过,如果我在页面上列出三个链接,如果我一个接一个地快速单击这些链接,它也只会下载最后一个文件。如果我像下面那样执行link.click()
,它会像预期的那样工作``函数startDownload(url){for(let I=0;I{let element=document.getElementById('link'+I);element.click()},2000*(i+1));}```