文件gallery.js基本上创建了一个由用户插入的图像库。
在一个名为gallery.js的文件中,我有这个功能来知道用户选择了哪个图像,当他点击它时,在图像周围创建一个边框。该功能将始终由用户首先使用。
var Nxml=0;
var NameFile =[]; // an array with all images names
var NameXml=[]; // array wth the name of the images selected
这个函数也在gallery.js中用html输入按钮检索用户插入的文件。
function handleFiles() {
"use strict";
var inputElement = document.getElementById("input");
var fileList = inputElement.files;
for(var i = 0; i < fileList.length; i++){
NameFile.push(fileList[i].name);
/.../
}
每次用户点击图库中显示的图像时,都会调用此函数。
function imgClick(img) {
if (img.className.indexOf('bordered') > -1) {
img.className = img.className.replace('bordered', '').trim();
Nxml=Nxml-1;
alert(Nxml);
// delete from the "NameXml" array the name of the image clicked
} else {
img.className += ' bordered';
for( var i=0; i<NameFile.length;i++){
if("imageID"+[i]===img.getAttribute("id")){
Nxml=Nxml+1;
NameXml.push(NameFile[i]);
alert(NameFile[i]);// name of the file selected
alert(Nxml);// nr of clicks
}
}
}
}
在另一个名为XML.js的文件中,我有一个函数生成一个xml文件,其中包含在表单上发布的信息,我希望生成的xml的数量与var“Nxml”和每个的名称相同xml文件与所选图像相同。
function download(frm){
"use strict";
alert(window.Nxml);
alert(NameXml);
for(var j=0; j<Nxml; j++){
var N= NameXml[j];
var data=fromToXml(frm);
console.log(data);
// aqui o nome do ficheiro
downloadData("text/xml",data, N+".xml");
}
}
答案 0 :(得分:1)
为什么你在imgClick(img)中减少Nxml !!所以它总是负面的,下载中的for循环不起作用。