Javascript canvg不';无法使用已放置在主体中的svg?
我想将SVG转换为画布,然后将其另存为图像。我已经在我的页面中用javascript生成了svg。我使用以下代码:Javascript canvg不';无法使用已放置在主体中的svg?,javascript,canvas,svg,canvg,Javascript,Canvas,Svg,Canvg,我想将SVG转换为画布,然后将其另存为图像。我已经在我的页面中用javascript生成了svg。我使用以下代码: $("#menu-save-image").click(function () { var svg = document.getElementsByTagName('svg'); var canvas = document.getElementById("test"); canvg(canvas, svg); // or second way
$("#menu-save-image").click(function () {
var svg = document.getElementsByTagName('svg');
var canvas = document.getElementById("test");
canvg(canvas, svg);
// or second way
var c = document.getElementById('test');
var ctx = c.getContext('2d');
ctx.drawSvg(svg, 0, 0, 500, 500);
});
两种方法都不行。为什么?canvg方法需要SVG源字符串(或url或XMLDocument),因此您应该使用如下XMLSerializer将SVG元素转换为SVG源
var svg = document.querySelector('svg');
var serializer = new XMLSerializer();
var svgString = serializer.serializeToString(svg);
var canvas = document.getElementById("test");
canvg(canvas, svgString);
请看我在这一点上犯了这个错误<不推荐使用代码>属性nodeValue。请改用“值”。canvg.js:725 3错误:元素“feComponentTransfer”尚未实现。canvg.js:2619未捕获类型错误:未定义不是函数canvg.js:2526