IE使用html2canvas返回空/空白画布

时间:2017-02-18 19:00:39

标签: javascript internet-explorer canvas jspdf html2canvas

我使用html2canvas从我的网站创建一个画布,下面的代码。那个画布我用jsPdf作为PDF上传到我的服务器。这适用于除Internet Explorer之外的所有浏览器(我在IE 11中尝试过)。画布已创建但完全空白。我已经包含了一个Promise插件。

我是否需要为IE添加额外的工作或使用不同的代码?

html2canvas(document.body, {
    background: '#FFFFFF',
    logging: true,
    onrendered: function(canvas) {      
        var pdf = new jsPDF('l', 'px', [screenWidth, screenHeight]);
        var marginLeft = 0;
        var marginRight = 0;            
        pdf.addImage(canvas.toDataURL("image/jpg"), "jpg", marginLeft, marginRight, screenWidth, screenHeight, null, 'FAST');   
        var finalPDF = btoa(pdf.output());
        var data = new FormData();
        data.append("data", finalPDF);
        var xhr = new XMLHttpRequest();
        xhr.open("post", "uploadPDF.php", true);
        xhr.send(data);
    }
});

修改

我修复了空白画布。问题出在position:absolute;元素上。我在创建position:relative;之前将其切换为canvas,然后将其切换回onrendered:回调。

1 个答案:

答案 0 :(得分:0)

登录后:true设置另一个属性useCORS:true应该可以解决问题