0
私はdiv内のsvgをキャンバスに変換するためにこれを使っています(これまではうまくいきました)。そしてdivのinnerHTMLを別のdivにコピーしましたが、動作しません。キャンバスが来ても、そのキャンバスには何も表示されません。予め おかげ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);
はい、キャンバスは特別な要素です。それはちょうどjavascriptでコピーすることはできません、それは "再描画"する必要があります –
どのようにキャンバスを再描画する?ありがとうございました – Kumar