Javascript Fabric js从url加载svg缺少属性

Javascript Fabric js从url加载svg缺少属性,javascript,svg,fabricjs,Javascript,Svg,Fabricjs,我正在尝试使用loadSVGfromURL并且一切都很好,但是我在文本方面有一些问题 如果我试图加载一些属性,如font-family,fill,等等。。。没有加载。文本已加载,但具有默认属性:黑色颜色,以及Times new roman字体 这是我的密码: fabric.loadSVGFromURL(img.src, function(objects, options) { var tmpobj = fabric.util.groupSVGElements(objects, optio

我正在尝试使用
loadSVGfromURL
并且一切都很好,但是我在文本方面有一些问题

如果我试图加载一些属性,如
font-family
fill
,等等。。。没有加载。文本已加载,但具有默认属性:黑色
颜色
,以及Times new roman
字体

这是我的密码:

fabric.loadSVGFromURL(img.src, function(objects, options) {
    var tmpobj = fabric.util.groupSVGElements(objects, options);
    canvas.setDimensions({
        width : tmpobj.width,
        height : tmpobj.height
    });
    //canvas.clear();
    canvas.forEachObject(function(obj) {
        //var obj = new fabric.Object({ padding: 0 });
        var obj = objects[i];
        if (obj.get('type') == 'text') {
            var text = new fabric.IText('Tap and Type', {
                fontFamily : obj.get('fontFamily'),
                left : obj.get('left'),
                top : obj.get('top'),
                text : obj.get('text'),
                oCoords : obj.get('oCoords'),
                fontSize : obj.get('fontSize'),
                height : obj.get('height'),
                width : obj.get('width'),
                fill : obj.get('fill')
            });
            obj = text;
        }
        obj.padding = 0;
        obj.setCoords();
        canvas.add(obj);
        canvas.renderAll();
    });
})

问题在于fabricjs中缺少TSPAN支持

svg如下所示:

<text x="32" y="40" class="cls-1"><tspan class="cls-2">riev</tspan></text>
  <text x="158" y="211" class="cls-1"><tspan class="cls-3">0999989878</tspan></text>
  <text x="96" y="120" class="cls-1"><tspan class="cls-2">Platon</tspan></text>
<text x="32" y="40" class="cls-1 cls-2"><tspan >riev</tspan></text>
  <text x="158" y="211" class="cls-1 cls-3"><tspan >0999989878</tspan></text>
  <text x="96" y="120" class="cls-1 cls-2"><tspan >Platon</tspan></text>
riev
0999989878
泼拉顿
信息class=“cls-2”和class=“cls-3”不会被解析,因为tspan被丢弃

您可以这样修改svg:

<text x="32" y="40" class="cls-1"><tspan class="cls-2">riev</tspan></text>
  <text x="158" y="211" class="cls-1"><tspan class="cls-3">0999989878</tspan></text>
  <text x="96" y="120" class="cls-1"><tspan class="cls-2">Platon</tspan></text>
<text x="32" y="40" class="cls-1 cls-2"><tspan >riev</tspan></text>
  <text x="158" y="211" class="cls-1 cls-3"><tspan >0999989878</tspan></text>
  <text x="96" y="120" class="cls-1 cls-2"><tspan >Platon</tspan></text>
riev
0999989878
泼拉顿
我已经添加了这个 var svg=doc
对于(var i=0;i
函数将我的tspan样式添加到文本样式中

你能提供一些实例吗?JSFIDLE?这是我用来测试的svg文件。如果你在浏览器中打开它,一个字符串的颜色将不同于其他字符串,但是如果你用FIDLE加载,每个字符串的颜色都将相同。我如何自动修改每个svg?我可以只编写简单的scipt吗替换它?