Javascript 未呈现.svg格式的html2canvas图像

Javascript 未呈现.svg格式的html2canvas图像,javascript,html,svg,html2canvas,Javascript,Html,Svg,Html2canvas,当我们使用html2canvas截图时,具有.svg扩展名的图像将无法正确呈现。我试着给AllowPaint:true选项,但它仍然不起作用 代码段: <div class="myDiv" style="background-image:url('image.svg');"> </div> html2canvas($(".myDiv"), { allowTaint: true, onrendered: function (canvas){ //use c

当我们使用html2canvas截图时,具有.svg扩展名的图像将无法正确呈现。我试着给AllowPaint:true选项,但它仍然不起作用

代码段:

<div class="myDiv" style="background-image:url('image.svg');">
</div> 

html2canvas($(".myDiv"), { 
allowTaint: true, 
onrendered: function (canvas){
     //use canvas 
    } 
});

html2canvas($(“.myDiv”),{
allowTaint:是的,
onrendered:函数(画布){
//使用画布
} 
});

html2canvas将捕获背景svg图像,如果我们使用img标记而不是scr属性中带有url的div标记。因此,我找到的解决方案是,在调用html2canvas函数之前,为每个div动态创建新的img标记

    $(".myDiv").each(function () {
        var url = $(this).css("background-image")
        var src = url.substring(5, url.length - 2);
        var image = new Image();
        image.src = src;
        var canvas = document.createElement("canvas");
        var ctx = canvas.getContext("2d");
        ctx.canvas.width = $(this).height();
        ctx.canvas.height = $(this).width();
        ctx.drawImage(image, 0, 0);
        $(this).append(canvas);
    });

这仅适用于您可以用img标记替换div标记的情况。

请您将代码共享给社区以提供帮助。html2canvas($(“.myDiv”),{allowTaint:true,onrendered:function(canvas){//use canvas}});