Thorsten Sperber: Zugriff von außen auf den SVG-DOM

Beitrag lesen

Hi,

alle Versuche, auf den SVG-DOM zuzugreifen, scheitern kläglich. Die meisten Beispiele im Internet funktionieren nicht in den Browsern unter Linux (es gibt das Plugin von Adobe (das auch noch schlecht gestaltete SVGs akzeptiert) halt nur für den IE) und die Dokumentation ist auch ziemlich dünn (wenn man vom w3c absieht, aber ich will darüber eigentlich keine Diplomarbeit schreiben).

Also, was ich bisher habe:

<embed name="Example1" width="750" height="300" src="fahrzeug-full.svg" TYPE="image/svg+xml">

auf das 'foo' greife ich dann so zu:

function drawSVG()
 {

alert(window.frames[0].document.getElementById('heading1').firstChild.data);

var foo = document.Example1.getSVGDocument();
 function drawPolygon(pPoints, pFillColor, pStrokeColor) // Punkte[], Farbe innen, Farbe rand
  {
var poly = foo.createElement('rect');
  var attrWidth = foo.createAttribute('width');
  attrWidth.nodeValue = "150";
  poly.setAttributeNode(attrWidth);
  var attrHeight = foo.createAttribute('height');
  attrHeight.nodeValue = "150";
  poly.setAttributeNode(attrHeight);
  var attrX = foo.createAttribute('x');
  attrX.nodeValue = "100";
  poly.setAttributeNode(attrX);
  var attrY = foo.createAttribute('y');
  attrY.nodeValue = "150";
  poly.setAttributeNode(attrY);
  //poly.attr('fill', 'grey').attr('stroke', 'black').attr('points', '100,200 90,50 90,115 40,115 40,85 50,50');

//<rect x="100" y="200" width="150" height="150"></rect>
  return poly;
  }

foo.getElementById('zugmaschine').appendChild(drawPolygon());
 //~ window.frames[0].document.getElementById('zugmaschine').appendChild(drawPolygon);
 }

Firefox (Firebug) spuckt nicht rum, passieren tut aber auch nichts. Weiß jemand, warum?

gruß, Thorsten