Javascript, SVG et DOM

Mettre un script dans un fichier SVG

La balise <script> dans le fichier SVG
<script><![CDATA[
................. votre script ......................
]]></script>

L'appel à un fichier javascript externe
<script xlink:href="nom_fichier" />

Fonctions, variables et méthodes gérées par Adobe Viewer

Nom type paramètres description exemple
evt variable aucun variable renvoyée quand le dessin SVG a le focus <svg width="400" height="200" onload="fonction(evt)">
Exemple1
ownerDocument
getOwnerDocument()
fonction aucun renvoie le document SVG svgdoc = evt.target.ownerDocument
Exemple2
target
getTarget()
fonction aucun renvoie l'objet qui a le focus objet = evt.target
Exemple1
getElementById("rectangle") fonction identificateur de l'objet renvoie l'objet qui a pour "id" la valeur envoyée objet=
svgdoc.getElementById("rectangle")
Exemple2
getAttribute("id") fonction nom d'un attribut de l'objet SVG renvoie la valeur de l'attribut largeur=objet.getAttribute("width")
Exemple2
setAttribute("id",valeur) méthode nom d'un attribut et la valeur envoyée affecte à un attribut la valeur envoyée objet.setAttribute("width",300)
Exemple2
( pour xlink:href utilisez setAttributeNS ) 
setAttributeNS("...","xlink:href",lien) méthode adresse NS, attribut et valeur affecte à un attribut la valeur envoyée objet.setAttributeNS("...","xlink:href",truc.htm)
Exemple18
style
getStyle()
fonction aucun renvoie le style d'un objet aspect=objet.style
Exemple2
setProperty("fill",valeur) méthode le nom de la propriété et la valeur envoyée affecte la valeur à une propriété objet.getStyle().setProperty("fill","red")
Exemple2
getPropertyValue("fill") fonction le nom de la propriété renvoie la valeur de la propriété couleur=objet.getStyle().getPropertyValue("fill")
Exemple10
attributes fonction aucun renvoie les attributs de l'objet comme NamedNodeMap att=objet.attributes
att.length donne le nombre d'attributs
att.item(i) donne le ième attribut
att.item(i).name son nom att.item(i).value sa valeur
Exemple17
createElement("rect") fonction le type de l'objet créé crée un objet nouveau=svgdoc.createElement("rect")
Exemple1 
Exemple8
appendChild(nouveau) méthode nom de l'objet créé insère l'objet créé comme descendant d'un noeud node.appendChild(nouveau)
Exemple1 
Exemple8
replaceChild(nouveau,ancien) méthode objets remplace ancien par nouveau node.replaceChild(nouveau,ancien)
Exemple15
insertBefore(nouveau,place) méthode objets insère nouveau avant l'objet place node.insertBefore(nouveau,place)
Exemple16
createTextNode("tra la") fonction texte à afficher crée un noeud qui contient le texte à afficher comme descendant d'un noeud de type "text" texte=svgdoc.createTextNode("tra  la");
Exemple4
setData("tra la") méthode texte à afficher Envoie le texte à un noeud descendant d'un noeud "text" objet.setData("Tra la la")
Exemple5
firstChild
getFirstChild()
fonction aucun renvoie le premier descendant d'un noeud texte=objet.firstChild
Exemple5
addEventListener ("mousemove",fonction,false) méthode événement , fonction appelée, false crée un événement pour un objet objet.addEventListener ("mousemove",alerte,false)
Exemple1  
Exemple8
removeChild(ancien) méthode nom d'un objet détruit l'objet comme descendant du noeud node.removeChild(ancien)
Exemple8
cloneNode(true) fonction false ou true crée un clone de objet et de ses descendants avec true nouveau=objet.cloneNode(true)
Exemple3
getCharCode() fonction aucun renvoie le code de la touche pressée key=evt.getCharCode()
Exemple5
String.fromCharCode(key) fonction Code de la touche renvoie la valeur chaîne de la touche lettre = String.fromCharCode(key)
Exemple5
clientX
getClientX()
fonction aucun renvoie l'abscisse du pointeur dans le repère SVG x_mouse=evt.clientX
Exemple6  Exemple19 
clientY
getClientY()
fonction aucun renvoie l'ordonnée du pointeur dans le repère SVG y_mouse=evt.clientY
Exemple6  Exemple19
screenX
getScreenX()
fonction aucun renvoie l'abscisse du pointeur dans le repère HTML x_mouse=evt.screenX
Exemple6 
screenY
getScreenY()
fonction aucun renvoie l'ordonnée du pointeur dans le repère HTML y_mouse=evt.screenY
Exemple6
childNodes
getChilNodes()
fonction aucun renvoie les descendants du noeud dans une liste y compris les CR !.... groupe=node.childNodes
Exemple7
getElementsByTagName(tag) fonction Le type recherché
"*" est le joker
renvoie les descendants du type indiqué dans une liste  groupe=node.getElementsByTagName('rect')
Exemple9
length
getLenght()
fonction aucun donne la longueur d'un objet NodeList nombre=groupe.lenght
Exemple7
Exemple9
item(n) fonction nombre entier >=0 renvoie le nième objet de la liste objet=groupe.item(1)
Exemple7
Exemple9
nodeType fonction aucun renvoie le type du noeud sous forme d'un entier i=objet.nodeType
Exemple10
nodeName fonction aucun renvoie le nom du tag nom=objet.nodeName
Exemple10
getCharNumAtPosition(d) fonction SVGPoint renvoie l'indice du caractère à la position indiquée indice=objet.getCharNumAtPosition(d)
Exemple11
getExtentOfChar(i) fonction Entier positif ou nul renvoie le rectangle entourant la lettre comme SVGRect trace=objet.getExtentOfChar(5);
trace.x, trace.y, trace.width et trace.height
Exemple11
getStartPositionOfChar(i)
getEndPositionOfChar(i)
fonction Entier positif ou nul renvoie le point de départ du tracé de la lettre comme SVGPoint p=objet.getStartPositionOfChar(1);
p.x et p.y donnent les coordonnées
Exemple11
getNumberOfChars() fonction aucun renvoie le nombre de lettres, y compris les espaces longueur=objet.getNumberOfChars()
Exemple12
getComputedTextLength() fonction aucun renvoie la longueur en points pour tracer la chaîne occupe=objet.getComputedTextLength()
Exemple12
selectSubString(i,j) méthode indice de départ et longueur de la sous-chaîne sélectionne la sous-chaîne objet.selectSubString(0,2)
Exemple12
getBBox() fonction aucun renvoie le rectangle entourant l'objet comme SVGRect trace=objet.getBBox();
trace.x, trace.y, trace.width et trace.height
Exemple13
getCTM() fonction aucun retourne la matrice de la transformation matrice=objet.getCTM();
matrice.a,matrice.b ..... matrice.f sont définis
Exemple14
inverse fonction aucun retourne la matrice inverse inverse_matrice=matrice.inverse
Exemple14
multiply(matrice2) fonction matrice multiplie par matrice2 produit=matrice1.multiply(matrice2)
Exemple14
currentScale nombre aucun renvoie ou force le facteur de Zoom currentScale=2
Exemple19
currentTranslate SVGPoint aucun renvoie ou force le facteur de Pan currentTranslate.x=100
Exemple19