Zugreifen auf die Grafik per JavaScript

(Auszug aus "Das Einsteigerseminar SVG — Webgrafiken mit XML" von Helma Spona)

Voraussetzung für den Zugriff auf die SVG-Dateien in der HTML-Seite ist, dass Sie sie mit dem <EMBED>-Tag einfügen und benennen. Über den Namen können Sie dann nämlich auf das Element der Seite zugreifen, indem Sie wie innerhalb der SVG-Grafik mit der Methode getElementsById( ) auf die Diagramme zugreifen.

Die Anweisung

SVGDoc=document.getElementById(DIAGName).getSVGDocument();

am Ende der Funktion INIT( ) gibt die SVG-Grafik als SVGDocument-Objekt zurück und speichert einen Verweis darauf in der Variablen SVGDoc. Diese Variable wird dann als Parameter an die Funktion INITDiagramm( ) übergeben, in der dann die Formatierung erfolgt. Innerhalb der Funktion müssen Sie nur noch auf das bereits vorhandene Objekt zugreifen und ähnlich wie innerhalb der SVG-Datei die Attribute und Inhalte setzen. Die Werte in den Variablen und definierten Arrays werden in der Funktion INITDiagramm den entsprechenden Elementen zugewiesen. Begonnen wird dabei mit den Achsentiteln. Zunächst wird der Variablen alterText das Textelement zugewiesen, das den Achsentitel für die x-Achse definiert und die id xtext hat. Über die Methode setNodeValue des von firstChild( ) zurückgegebenen Objekts wird dann der neue Text auf den Wert der Variablen xtext gesetzt. Mit der Beschriftung für die y-Achse wird dann genauso verfahren.

function INITDiagramm(DiagObj)
{
  //Achsentitel definieren
  alterText=DiagObj.getElementById("xtext");
  alterText.firstChild.setNodeValue(xtext);  
  alterText=DiagObj.getElementById("ytext");
  alterText.firstChild.setNodeValue(ytext);
  ...

Sind die Achsentitel formatiert, wird mit den Reihentiteln genauso verfahren. Der Unterschied besteht nur darin, dass die Texte für die Textelemente aus dem Array texte gelesen werden. Der Zugriff erfolgt über einen Index, der in eckigen Klammern angegeben wird und bei 0 beginnt. Im Anschluss wird auf ähnliche Weise auch der Diagrammtitel definiert und positioniert, indem über die setAttribute-Methode die Attribute x und y festgelegt werden.

  //Reihentitel festlegen
  alterText=DiagObj.getElementById("TReihe1");
  alterText.firstChild.setNodeValue(texte[0]);
  alterText=DiagObj.getElementById("TReihe2");
  alterText.firstChild.setNodeValue(texte[1]);
  alterText=DiagObj.getElementById("TReihe3");
  alterText.firstChild.setNodeValue(texte[2]);
  alterText=DiagObj.getElementById("TReihe4");
  alterText.firstChild.setNodeValue(texte[3]);
  ...

Für die Formatierung des Titels wird eine if-Anweisung verwendet. Sie prüft, ob die Variable titelcolor einen Wert ungleich "" hat. In diesem Fall wird die aktuelle Formatierung in der Variablen format gespeichert. Mit der setProperty-Methode wird dann die Füllfarbe entsprechend gesetzt. In der ersten if-Anweisung wird die Farbe des Textes dtitel gesetzt und in der zweiten die Füllfarbe des Titelhintergrundes.

  ...
  //Titel formatieren 
  if (titelcolor!="")
  {
    format=
    DiagObj.getElementById("dtitel").getStyle();
    format.setProperty("fill",titelcolor);
  }
  if (titelbgcolor!="")
  {
    format=
    DiagObj.getElementById("titelrahmen").getStyle();
    format.setProperty("fill",titelbgcolor);
  }
  //Reihen formatieren
  ...
}

Die weiteren Formatierungen setzt das Skript auf die gleiche Weise. Im Prinzip werden immer nur die gleichen bereits bekannten Eigenschaften und Methoden verwendet, sodass sich weitere Erläuterungen erübrigen.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema SVG bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © verlag moderne industrie GmbH 2001
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Das Einsteigerseminar SVG — Webgrafiken mit XML" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

verlag moderne industrie GmbH, Justus-von-Liebig-Straße 1, D-86899 Landsberg/Lech, fon ++49 (0) 81 91 / 125 – 0, leserservice(at)mi-verlag.de