如何使用javascript(jsPdf)和firefox一次生成和下载多个文件?

时间:2019-05-13 09:59:24

标签: javascript pdf firefox download jspdf

我正在使用JsPDF生成许多PDF文件,然后下载它们。使用Chrome和Edge可以正确生成和下载所有这些文件,但是使用Firefox仅下载第一个。

这是我的代码:

<script>
    $( document ).ready(function() {
        let doc = new jsPDF();
        doc.text(20, 20, 'hello');
        for(a = 0; a < 6; a++){
            // doc.output('dataurlnewwindow');  < NOT WORKING ON RECENT BROWERS.
            // doc.output('datauri');
            // doc.addHTML($('#content'), 1, 1, function () {
            //     var blob = doc.output("blob");
            //     window.open(URL.createObjectURL(blob));
            // });

            doc.save('file_number_' + 'a' + '.pdf'); < DOWNLOADS ONLY THE FIRST FILE IN FIREFOX.
        }
    });
</script>

我如何能够下载所有生成的文件?即使我可以在新窗口中打开它们,也可以,只要我能够指定PDF的文件名即可。

谢谢。

编辑:如pytness所示,似乎Firefox阻止了该进程。 我只是试图以这种方式延迟点击:

function clickAll(){
            let waiter = 0;
            $('.pdf_line').each( 
                function(){
                    if ($(this).find('input').prop('checked')){
                        //console.log('click! waiter = ' + waiter);
                        $(this).find('.print_document').delay(4000*waiter).click(); 
                        waiter++;
                    };
                }
            )
        }

但是在首次下载后,Firefox停止了整个过程。

1 个答案:

答案 0 :(得分:0)

您似乎在循环中每次都使用相同的名称来保存文件,因此每次都只是对其进行保存。尝试将doc.save中的“ a”更改为a