【问题标题】:html2canvas(document.body).then(function(canvas) {} not callhtml2canvas(document.body).then(function(canvas) {} 不调用
【发布时间】:2019-02-12 20:09:19
【问题描述】:

我想在buttonbuttonclick上的javaScript函数中调用html2canvas(document.body).then(function(canvas){});

工作代码:

function action () {
    if (elementScope == "body") {
         alert("generating pdf.........2");
         //alert("canvas........."+canvas)

        alert("document.body......."+document.body)
        //mypdf();
        html2canvas(document.body).then(function(canvas){
            alert("html2canvas called...!!!");
            var imageFullQuality = canvas.toDataURL();
            var docDefinition = {
                content: [{
                    image : imageFullQuality,
                    width : widthCanvas,
                }]
        };
        alert("generating pdf.........4");
        new  pdfMake.createPdf(docDefinition).download(fileName + ".pdf");
        });
    }
}

错误代码

html2canvas(document.body).then(function(canvas){});没有得到调用,剩余的代码将正常执行。

this.action = function action() {
    if (elementScope == "body") {
         alert("generating pdf.........2");
         //alert("canvas........."+canvas)

        alert("document.body......."+document.body)
        //mypdf();
        html2canvas(document.body).then(function(canvas){
            alert("html2canvas called...!!!");
            var imageFullQuality = canvas.toDataURL();
            var docDefinition = {
                content: [{
                    image : imageFullQuality,
                    width : widthCanvas,
                }]
            };
            alert("generating pdf.........4");
            new  pdfMake.createPdf(docDefinition).download(fileName + ".pdf");
        });
    }
}

这里没有什么问题。请帮帮我。

【问题讨论】:

    标签: javascript jquery angularjs html2canvas bonita


    【解决方案1】:

    您可以直接分配函数而不是分配function action() {}

    this.action => () {
        if (elementScope == "body") {
             alert("generating pdf.........2");
             //alert("canvas........."+canvas)
    
            alert("document.body......."+document.body)
            //mypdf();
            html2canvas(document.body).then(function(canvas){
                alert("html2canvas called...!!!");
                var imageFullQuality = canvas.toDataURL();
                var docDefinition = {
                    content: [{
                        image : imageFullQuality,
                        width : widthCanvas,
                    }]
                };
                alert("generating pdf.........4");
                new  pdfMake.createPdf(docDefinition).download(fileName + ".pdf");
            });
        }
    }
    

    【讨论】:

    • 感谢您的回复。但它不起作用。我想从动作函数调用 html2canvas(document.body).then(function(canvas)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多