johnny: svg text mit javascript erzeugen

Hi.

Ich habe folgenden Javascript Code:

var txt = svgdoc.createElementNS(svgns, "text");
 txt.setAttributeNS(null, "id", "wort");
 txt.setAttributeNS(null, "x", "200");
 txt.setAttributeNS(null, "y", "200");
 txt.setAttributeNS(null, "style", "font-family:Impact,sans-serif; font-size:16; fill:black;");
 txt.data="Hallo";

svgdoc.documentElement.appendChild(txt);

Dummerweise passiert in meinem SVG Dokument gar nichts. Experimentiere da jetzt schon seit Stunden rum und ich weiß nicht, was der Fehler ist.

Interessanterweise wird z.B. ein Pfad auf die "gleiche" Weise bei mir erzeugt. Nur Text nicht. Wenn ich aber den Text schon vorher im SVG Dokument schreibe und über JS ändere, dann geht das auch.
Aber ich will ihn komplett neu erzeugen.

Gruß
johnny

  1. Hallo,

    var txt = svgdoc.createElementNS(svgns, "text");
    txt.setAttributeNS(null, "id", "wort");
    txt.setAttributeNS(null, "x", "200");
    txt.setAttributeNS(null, "y", "200");
    txt.setAttributeNS(null, "style", "font-family:Impact,sans-serif; font-size:16; fill:black;");
    txt.data="Hallo";

    svgdoc.documentElement.appendChild(txt);

    Das funktioniert meiner Meinung nicht, weil du beim setAttributeNS keine NameSpace angibst, sondern lediglich null. Woher soll denn der Parser bzw. der Generator wissen, zu welchem Namespace das Attribut gehört? Du kannst nicht davon ausgehen, dass automatisch der NS des Elementes genommen wird!!!!

    Grüße

    1. Hi.

      Habs jetzt herausgefunden.
      Es liegt nicht am NS. Das ging nämlich bei path auch mit null.

      Man muss einen Textknoten noch definieren und ihn anfügen.

      z.B.:
      var data = svgdoc.createTextNode("Inhalt");

      grüße