javascript-下载几个文件

javascript-下载几个文件,javascript,download,Javascript,Download,我是javascript新手,需要维护一个站点。 实际的功能是将多张卡下载到一个文件中,每个选项卡一张卡。由于用户可以有很多卡片,治疗不可能总是成功(标签太多),例如,我想每20个标签创建一个文件 var printTerm = function(grid){ var rows = grid.selected; if(rows==null) return; var ids = rows.map(function(val){return grid.getData

我是javascript新手,需要维护一个站点。 实际的功能是将多张卡下载到一个文件中,每个选项卡一张卡。由于用户可以有很多卡片,治疗不可能总是成功(标签太多),例如,我想每20个标签创建一个文件

 var printTerm = function(grid){
     var rows   = grid.selected;
     if(rows==null) return;
     var ids = rows.map(function(val){return grid.getDataByRow(val).num_terme;});
     var nbMax = 20; 
     var nbFic;
     var idsPartiel;    
     var posDebut;
     var posFin;
     var a;    
     if(ids.length > nbMax)
     {    
         idsPartiel = ids; 
         if(ids.length % nbMax == 0)     nbFic = ids.length / nbMax;
         else                            nbFic = ((ids.length - (ids.length % nbMax)) / nbMax) + 1; 
         for (i=0 ; i< nbFic ; i++) 
         {     
                 posDebut = (nbMax * i);
                 if(i == nbFic - 1)      posFin = idsPartiel.length + 1;   
                 else                    posFin = posDebut + nbMax;
                 ids = idsPartiel.slice(posDebut,posFin);
                 a   = new Element('a', 'id':'download','href':'php/utils/export2pdf.php?ids='+ids.join(',')})
                         .addEvent('click',function(){location.href=this.href;}).inject(document.body);
                 a.fireEvent('click');             
                 a.dispose();
         }    
     }    
     else 
     {   
         a   = new Element('a',{'id':'download','href':'php/utils/export2pdf.php?ids='+ids.join(',')})
                 .addEvent('click',function(){location.href=this.href;}).inject(document.body);
         a.fireEvent('click');
         a.dispose();
     }    
 };   
var printerm=函数(网格){
var rows=grid.selected;
if(rows==null)返回;
var id=rows.map(函数(val){return grid.getDataByRow(val.num_terme;});
var nbMax=20;
var-nbFic;
第二部分;
var-pos;
var posFin;
var a;
如果(id.length>nbMax)
{    
idsPartiel=ids;
如果(ids.length%nbMax==0)nbFic=ids.length/nbMax;
else nbFic=((ids.length-(ids.length%nbMax))/nbMax)+1;
对于(i=0;i
当卡数小于或等于nbMax时,它工作良好,但必须有多个文件,而不是:只有循环的最后一段才创建文件。 当我试图看看firebug会发生什么时,我看到了我的治疗路线,但只有最后一条结束了。
谢谢您的帮助。

如果我正确阅读了您的代码,您正在试图让浏览器将大量文件下载到单独的选项卡中。大多数浏览器不会真的喜欢你用这种方式启动一个下载循环,用户也不会真的希望有那么多“另存为”对话框突然出现

您最好将它们打包到zip文件服务器端并发送一个文件。这将更加高效,更加方便用户