Javascript 未呈现.svg格式的html2canvas图像
当我们使用html2canvas截图时,具有.svg扩展名的图像将无法正确呈现。我试着给AllowPaint:true选项,但它仍然不起作用 代码段: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
<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}});