簡體   English   中英

函數無法使用window.location.href

[英]function not working with using window.location.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>

Ankur是對的 - 無論是否帶有基於promise的API使用的html2pdf本質上都是異步的,所以它不會阻止你的代碼在處理請求時繼續,並且因為設置window.location.href接近瞬時,在html2pdf有機會完成之前達到重定向。

因為html2pdf具有基於promise的API,所以很容易避免 - 只需等到保存承諾解析為重定向,如下所示:

html2pdf().from(element).set(opt).save().then(()=>{
    window.location.href = "index.php";
});

請注意,在保存對話框仍處於打開狀態時,這仍會重定向用戶。 我沒有看到在文檔中關閉它時候列出的承諾(可能是因為JS方面不知道它),但它不會阻止html2pdf工作,因為文件blob的生成發生在頁面重定向之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM