を使用してPNGにSVGをレンダリング私のページにあります:は、次のHTML要素のJavaScript
<canvas id="canvas" width=400 height=400 />
そして私はPNGとして次のタグをレンダリングしようとしています。
<div style="font-size=40px">
Fun with d3.js
</div>
JavaScriptの機能は次のとおりです。それはキャンバス内のイメージとして "Fun with d3.js"というテキストを含むタグをレンダリングする必要がありますが、レンダリングされていません。しかし、devtoolsを使って生のHTML要素を挿入すると、SVGは正当なものとしてレンダリングされます。翻訳のどこかで、JavaScriptがhtml要素を失っているように見えますが、私の人生は理由を理解できません。 img.onerrorイベントは呼び出されていますが、有用な情報はほとんど提供されません。
renderToPNG: function() {
var myCanvas = document.getElementById("canvas");
var context = myCanvas.getContext("2d");
var data =
'<svg width=\"400\" height=\"400\">' +
' <foreignObject width=\"100%\" height=\"100%\">' +
' <div style=\"font-size=40px\">' +
' Fun with d3.js' +
' </div>' +
' </foreignObject>' +
'</svg>';
var domURL = window.URL || window.webkitURL || window;
var img = new Image();
var svg = new Blob([data], {type:"image/svg+xml;charset=utf-8"});
var url = domURL.createObjectURL(svg);
img.onload = function() {
context.drawImage(img, 0, 0);
domURL.revokeObjectURL(url);
}
img.src = url;
}
上記のコードは有効なJSではありません。 'var data ='の行の属性値の前後で引用符をエスケープする必要があります。 –
@ LukeWoodwardエスケープされたキャラクターを含むように私のメインポストを編集しましたが、まだimg.onerrorイベントを呼び出しています。 – Dan
エラーメッセージouput onerrorとは何ですか? – Dummy