【发布时间】:2017-10-04 07:14:04
【问题描述】:
我正在使用canvg 将 div 中存在的 svg 转换为画布(到目前为止它工作正常),然后将 div 的 innerHTML 复制到另一个 div,但它不起作用。画布即将到来,但该画布中不会出现任何内容。 提前致谢
<div id="k">
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
Sorry, your browser does not support inline SVG.
</svg>
</div>
<div id="kk">
<p>Watch me</p>
</div>
var svgTag = document.querySelectorAll('#k svg');
svgTag = svgTag[0];
var c = document.createElement('canvas');
c.width = svgTag.clientWidth;
c.height = svgTag.clientHeight;
svgTag.parentNode.insertBefore(c, svgTag);
svgTag.parentNode.removeChild(svgTag);
var div = document.createElement('div');
div.appendChild(svgTag);
canvg(c, div.innerHTML);
setTimeout(function(){
var data = $("#k").html();
$("#kk").append($(''+data+''));
},5000);
【问题讨论】:
-
是的,canvas 是一个特殊的元素。不能只用javascript复制,必须“重绘”
-
如何重绘画布?谢谢
标签: javascript jquery html canvas canvg