Javascript canvg不';无法使用已放置在主体中的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

我想将SVG转换为画布,然后将其另存为图像。我已经在我的页面中用javascript生成了svg。我使用以下代码:

$("#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