循环仅执行最后一个值,但全部在调试模式中执行

时间:2018-11-12 13:04:12

标签: javascript loops

我的循环应该使用tagName a降低页面的所有href,但它只会下载循环的最后一个文件。

$('#exportBilanProj').click( 
        function() { 
            var links = document.getElementsByTagName('a'); 

            for(var count=0; count<links.length; count++) {
                var url = links[count].getAttribute('href');
                if(url && url.startsWith('rest/grm/export/bilan-projet/')) {
                    console.log( "value :" + url );
                    links[count].dispatchEvent(new MouseEvent('click'));  
                }
            }

        }); 

但是当我调试它时,所有信息都被获取并且所有文件都被下载了

  

值:rest / grm / export / bilan-projet / 53035

     

值:rest / grm / export / bilan-projet / 53039

     

值:rest / grm / export / bilan-projet / 64001

我试图休息一下,但没有任何效果。任何想法 ?

1 个答案:

答案 0 :(得分:0)

为什么不使用“ window.open”?我用了这个例子,看起来好像正常工作!

var links = document.getElementsByTagName('a'); 

            for(var count=0; count<links.length; count++) {
                var url = links[count].getAttribute('href');
                //remove for tests
                //if(url && url.startsWith('rest/groupama/export/bilan-projet/')) {
                    console.log( "value :" + url );
                    //window.open 
                    window.open(url);
                //}
            }

如果您打开的链接是下载链接,它将开始下载,如果您使用复合网址,则必须在“ window.open(url)”示例之前进行调整:

window.open(location.href + url);

或类似的东西...