对于这个问题,我已经跟踪了在svg编辑器的svgcanvas.js文件中设置svg内容的执行情况,但没有成功。我甚至尝试过删除"text2xml“调用中的g标签,但没有成功。
请帮帮我。
下面是我尝试过的代码,这里我上传了svg文件,并通过reader读取该文件:
reader.onloadend = function(e) {
var xmlString=e.target.result;
xmlDoc = $jq.parseXML(xmlString);
var xmlElements=xmlDoc.documentElement.childNodes;
var reXmlElements=new Array();
var j=0;
for (var i=0; i<xmlElements.length; i++) {
if(xmlElements[i].nodeName=="g") {
//xmlElements[i].remove();
reXmlElements[j]=xmlElements[i].children[0];
j++;
} else {
//reXmlElements[j]=xmlElements[i];
}
}
xmlDoc.documentElement.children=reXmlElements;
console.log(xmlDoc.documentElement.children);
console.log((new XMLSerializer()).serializeToString(xmlDoc));
svgCanvas.setSvgString(e.target.result);发布于 2016-05-19 20:19:49
谢谢,我已经通过做以下事情解决了这个问题:
svgCanvas.setSvgString(e.target.result);
svgEditor.changeZoom({value: (100*zoomlevel)});
//setSvgConfiguration(imprintWidth[side], imprintHeight[side], imprintLeft[side], imprintTop[side]);
document.querySelector("#svgcontent").setAttribute("overflow","hidden");
maxWidth=document.querySelector("#svgcontent").getAttribute("width");
maxHeight=document.querySelector("#svgcontent").getAttribute("height");
if($jq("#svgcontent g").length > 0 && $jq("#svgcontent g").children().length > 0) {
var allElements = $jq("#svgcontent g").children();
$jq("#svgcontent g:first").html("");
for(var i=0; i<allElements.length; i++) {
var element = allElements[i];
if(element.tagName == "g") {
for(var j=0;j<element.children.length;j++) {
$jq("#svgcontent g:first").append(element.children[j]);
}
}
}
allElements = $jq("#svgcontent g").children();https://stackoverflow.com/questions/37314184
复制相似问题