Bonjour

Je programme un site SVG dans lequel j'utilise XMLHttpRequest pour mettre à jour certaine partie du site (rien de très extraordinaire pour le moment).

Sauf que je voudrais que les fragments de svg que je récupère de mon site, appellent des scripts au moment de leur ajout dans mon graphe de scène (le dom). Pour cela je pensais utiliser des abonnements sur l'événement "onload" comme pour un site normal, mais cela ne marche pas dans le cas d'un XML chargé avec XHR. Peut etre que j'utilise mal XMLHttpRequest et l'API DOM ...

Quelqu'un aurait-il une idée pour résoudre cela ?
Je mets le code dans le suite de ce document.

cordialement

PS: ce code tourne dans FireFox 2

testHttpResquest.svg:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<svg 	xmlns="http://www.w3.org/2000/svg">
 
<script>
 
function testModeS ()
{
  var text = document.getElementById ('the_text');
 
  var xhr_object = new XMLHttpRequest(); 
  xhr_object.open("GET", "foo.xml", false); 
  xhr_object.send (""); 
 
  if (xhr_object.readyState == 4)
  {
    text.appendChild (xhr_object.responseXML.documentElement);
  }
}
</script>
<rect x='50' y='50' width='100' height='50' fill='blue' onclick="testModeS ();"/>
<g id='the_text'></g>
</svg>
foo.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<text xmlns="http://www.w3.org/2000/svg" x='50' y='130' onload="alert('toto')" onclick="alert('titi')">ceci est un test</text>