Bonjour,

J'ai un problème de compatibilité entre IE et les autres navigateurs (Firefox, Google Chrome, ...).

Je lance donc une fonction dans le OnLoad du body de ma page html comme ceci :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<body onload="transform(loadXML(nom), loadXML('index.xsl'), 'transform');">

La fonction LoadXML charge le fichier XML ou XSL :

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
function loadXML(url) 
      { 
        var xmlDoc; 
          // Internet Explorer
          if (window.ActiveXObject){ 
              xmlDoc = new ActiveXObject('Msxml2.XMLDOM'); 
              xmlDoc.async = false; 
              xmlDoc.load(url); 
          } 
 
          //Firefox
		  else if (window.XMLHttpRequest) { 
            xmlDoc = new XMLHttpRequest(); 
            xmlDoc.overrideMimeType('text/xml'); 
            xmlDoc.open('GET', url, false); 
            xmlDoc.send(null); 
			//La fonction lit bien le fichier XML
			//alert(xmlDoc.responseText); 
          } 
        return xmlDoc; 
      }
La fonction marche bien puisque dans mon alert je récupère le contenu de mes fichiers XML et XSL.

Je suppose donc que l'erreur vient de ma fonction de transformation qui est la suivante :
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
23
 
 function transform(xml, xsl, id) 
      { 
 
          // FireFox
          if (window.XSLTProcessor) 
          { 
		  //ERREUR ICI ?
            var fragment; 
            var xsltProcessor = new XSLTProcessor();              
            xsltProcessor.importStylesheet(xsl); 
            fragment = xsltProcessor.transformToFragment(xml, document); 
            var target = document.getElementById(id); 
            target.appendChild(fragment); 
            document.appendChild(target); 
		  //ERREUR ICI ?
          }
			// Internet Explorer
			else if (window.ActiveXObject) { 
            var target = document.getElementById(id); 
            target.innerHTML = xml.transformNode(xsl); 
          }  
      }
Comme je l'ai précisé dans le titre, ça fonctionne sous IE mais pas sous les autres navigateurs.

Ma page HTML dois recevoir du XML mis en forme par le XSL.

Des idées sur l'erreur ? Merci d'avance