In case anybody is interested, below is a "Fill-the-missing-Fills"
solution, however there may be some other ways to solve this?
Jan
function correctMissingFill(xmlNodeList)
{
for (var i=0;i<xmlNodeList.length;i++)
{
if( xmlNodeList[i].nodeType == 1)
{
// correct (rectangles, and others that have stroke)
but no fill
if( ( xmlNodeList[i].nodeName == "rect" ||
xmlNodeList[i].hasAttribute("stroke") ) && !
xmlNodeList[i].hasAttribute("fill") )
{
xmlNodeList[i].setAttribute("fill", "none");
}
correctMissingFill( xmlNodeList[i].childNodes );
}
}
}
var svgString = vis.scene[0].canvas.innerHTML;
parser=new DOMParser();
xmlDoc=parser.parseFromString(svgString,"text/xml");
correctMissingFill(xmlDoc.childNodes);
var serializer = new XMLSerializer();
svgString = serializer.serializeToString(xmlDoc);