函数无法使用window.location.href

时间:2019-06-21 11:46:01

标签: javascript function href

函数html2pdf(element)(生成页面的pdf)可以正常工作。执行该功能后,我想定向到另一页。就我而言,添加window.location.href[...]只是将页面重定向到下一页,但是功能html2pdf不再起作用。

<script>
  $(function() {});
  function printPDF() {
    var element = document.getElementById("element-to-print");
    var opt = {
      margin: 1,
      filename: "EFS10Laptop.pdf",
      image: { type: "jpeg", quality: 1.98 },
      html2canvas: { scale: 2 },
      jsPDF: { unit: "in", format: "letter", orientation: "portrait" }
    };

    // New Promise-based usage:
    //html2pdf().from(element).set(opt).save();
    html2pdf(element);
    window.location.href = "index.php";
  }
</script>

1 个答案:

答案 0 :(得分:0)

Ankur是正确的-html2pdf可以与基于Promise的API一起使用,也可以不与基于Promise的API一起使用,因此本质上是异步的,因此在设置请求{并且设置{{ 1}}几乎是瞬时的,在html2pdf有机会完成之前已达到重定向。

由于window.location.href具有基于promise的API,因此很容易避免-只需等到save promise决定重定向即可,就像这样:

html2pdf

请注意,当保存对话框仍处于打开状态时,这仍将重定向用户。我没有看到the documentation中关闭时的承诺(可能是因为JS方面不知道),但是它不会阻止html2pdf正常工作,因为文件blob的生成是在页面重定向。