[英]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.