html2canvas 返回黑色图像

dez*_*jno 5 javascript php

我在通过 html2canvas 将 div 渲染为图像时遇到问题。

这是我的 javascript 代码:

function saveImages(i)
        {
            html2canvas($("#page"+i), {
                logging:true,
                onrendered: function(canvas){
                    var url = canvas.toDataURL();
                    $.post("saveImage.php", {"path": url, "index":i}, function(data){
                        var p = Math.round(((i+1)/totalPages)*100);
                        $("#progressGraphical").css("width", p+"%");
                        if(p>=100){p = "fertig!"}else{p += "%";}
                        $("#progress").html((i+1)+"/"+totalPages+" Seiten gespeichert - "+p);
                        if(i<totalPages) saveImages(i+1);
                    });
                }
            });
        }
        $(document).ready(function(){
            saveImages(0);
        });
Run Code Online (Sandbox Code Playgroud)

由于使用 jquery 函数完成后请求,我不得不递归地工作。请求的 php 文件采用由 canvas.toDataUrl-Method 生成的 base64 编码 url,对其进行解码并将其保存到名为“page0/1/2/.../n.png”的图像文件中。

所有这些工作正常 - 直到超过大约 24 次递归调用的总数。如果是这种情况,那么 html2canvas 生成的所有图像(甚至是第 24 次递归调用之前的图像)都被绘制为空白。我已经看过 base64 编码的 url - 只有两个相等的字符串交替出现。

错误在哪里?

Cra*_*lWS 3

/sf/answers/1674962691/

只需将 css background-color:#ffffff 添加到您的表格中:)

希望这可以帮助

我将内容包装到每个所需页面的 div 中,class="pdfpage"然后将 css 设置为pdfpage{background:#FFFFFF;}

正如我所评论的,我首先想到的并不是我需要将渲染元素的背景设置为白色,因为它已经是白色的了......但事实上它是无色的......

复制我的答案: https ://stackoverflow.com/a/25457584/1815624