Gra*_*min 4 javascript download
我有以下javascript:
function downloadFiles(){
var files = [];
files.push('mysite.com/file1.txt');
files.push('mysite.com/file2.txt');
files.push('mysite.com/file3.txt');
for(var ii=0; ii<files.length; ii++){
window.location.href = files[ii];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是这只会下载列表中的最后一个文件,因为前两个文件被最后一个文件覆盖.在继续下一个文件之前,如何等待用户对每个文件的输入?
我最终做了什么:
function downloadFiles(){
var files = [];
files.push('file1.txt');
files.push('file2.txt');
files.push('file3.txt');
for(var ii=0; ii<files.length; ii++){
downloadURL(files[ii]);
}
}
var count=0;
var downloadURL = function downloadURL(url){
var hiddenIFrameID = 'hiddenDownloader' + count++;
var iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.src = url;
}
Run Code Online (Sandbox Code Playgroud)
如果您更改要使用的代码window.open()
而不是window.location
,则可以同时启动所有三个下载.
我知道这不满足在呈现每个下载之前等待用户输入的要求,但它确实构建了原始代码的精神.希望它会有所帮助.
function downloadFiles(){
var files = [];
files.push('file1.txt');
files.push('file2.txt');
files.push('file3.txt');
for(var ii=0; ii<files.length; ii++){
window.open(files[ii]);
}
}
Run Code Online (Sandbox Code Playgroud)