Bonjour,

Dans ma page XHTML j'ai une balise embed qui a comme source un fichier XML pour créer des entités SVG.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<embed src="image.svg" width="1000" height="1000" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />
J'ai donc des éléments SVG comme plugin dans ma page. Je veux accéder à ces éléments SVG et leur associer des événements en l'occurrence l'événement onclick.
Voici le fichier xml (*.svg)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?xml version='1.0' standalone='no'?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<svg style='cursor:crosshair' width='1000' height='1000' version='1.1' xmlns='http://www.w3.org/2000/svg'>
<path fill='lightsteelblue' stroke='midnightblue' stroke-width='5' d='M 10 10 L 10 20 20 20 20 15 Z '/>
<path fill='lightsteelblue' stroke='midnightblue' stroke-width='5' d='M 100 100 L 150 100 200 300 100 350 Z '/>
<path fill='lightsteelblue' stroke='midnightblue' stroke-width='5' d='M 50 500 L 100 650 65 800 20 700 Z '/>
</svg>
Ce fichier est créé avec PHP suite à des requêtes.
Pour attacher l'événement onclick à l'élément svg, j'ai créé un script JS qui permet d'accéder au document SVG. Le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
}
Ensuite j'accède au SVG dans un script JS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var doc =loadXMLDoc("image.svg");
				var svg = doc.getElementsByTagName("svg")[0];
Finalement, je traite les instructions à exécuter dans le cas d'un click sur la balise svg (affichée sur ma page)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
svg.addEventListener("click", function() {...},false);
Lorsque je clique sur le svg : RIEN !

Je ne sais pas où est l'erreur ...