【问题标题】:How to generate and download multiple files at once with javascript (jsPdf) and firefox?如何使用 javascript (jsPdf) 和 firefox 一次生成和下载多个文件?
【发布时间】:2019-05-13 09:59:24
【问题描述】:

我正在使用 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 会停止整个过程。

【问题讨论】:

  • 您确定浏览器没有阻止下载吗?浏览器通常会阻止多个 javascript 触发的下载,以防止未经用户授权的下载
  • 这就是我害怕的。我刚刚更新了主要问题。

标签: javascript pdf firefox download jspdf


【解决方案1】:

看起来您在循环中每次都使用相同的名称保存文件,所以每次都保存它。尝试将 doc.save 中的“a”更改为 a

【讨论】:

  • 作为旁注。我们可以在 chrome 中一次下载超过 10 个吗?我的使用 chrome 在 10 个文件处停止。
  • 谢谢贾里德!不幸的是,即使循环名称也不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 2015-10-23
  • 2015-07-09
  • 1970-01-01
  • 2017-02-14
  • 2019-08-30
相关资源
最近更新 更多