Bonjour,
J'ai crée un site dans lequel j'utilise des données XML que je vais intégrer dans le HTML à travers JavaScript.
Voici mon code :
Ce code il marche pour Mozilla Firefox et IE mais pas pour Safari,Opera et Chrome.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 var xmlVaudCRB; function loadXMLVaudCRB() { //load xml file // code for IE if (window.ActiveXObject) { xmlVaudCRB=new ActiveXObject("Microsoft.XMLDOM"); xmlVaudCRB.async=false; xmlVaudCRB.load("xml/vaudcrb.xml"); getoffrevaudcrb(); } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xmlVaudCRB=document.implementation.createDocument("","",null); xmlVaudCRB.load("xml/vaudcrb.xml"); xmlVaudCRB.onload=getoffrevaudcrb; <----? } else { alert('Votre navigateur ne peut pas afficher ce script!'); } } function getoffrevaudcrb() { document.getElementById("ref100").innerHTML=xmlVaudCRB.getElementsByTagName("ref100")[0].childNodes[0].nodeValue; document.getElementById("ref101").innerHTML=xmlVaudCRB.getElementsByTagName("ref101")[0].childNodes[0].nodeValue; document.getElementById("ref102").innerHTML=xmlVaudCRB.getElementsByTagName("ref102")[0].childNodes[0].nodeValue; document.getElementById("ref103").innerHTML=xmlVaudCRB.getElementsByTagName("ref103")[0].childNodes[0].nodeValue; document.getElementById("ref104").innerHTML=xmlVaudCRB.getElementsByTagName("ref104")[0].childNodes[0].nodeValue; document.getElementById("ref105").innerHTML=xmlVaudCRB.getElementsByTagName("ref105")[0].childNodes[0].nodeValue; document.getElementById("ref106").innerHTML=xmlVaudCRB.getElementsByTagName("ref106")[0].childNodes[0].nodeValue; document.getElementById("ref107").innerHTML=xmlVaudCRB.getElementsByTagName("ref107")[0].childNodes[0].nodeValue; document.getElementById("ref108").innerHTML=xmlVaudCRB.getElementsByTagName("ref108")[0].childNodes[0].nodeValue; document.getElementById("ref109").innerHTML=xmlVaudCRB.getElementsByTagName("ref109")[0].childNodes[0].nodeValue; document.getElementById("ref110").innerHTML=xmlVaudCRB.getElementsByTagName("ref110")[0].childNodes[0].nodeValue; document.getElementById("ref111").innerHTML=xmlVaudCRB.getElementsByTagName("ref111")[0].childNodes[0].nodeValue; document.getElementById("ref112").innerHTML=xmlVaudCRB.getElementsByTagName("ref112")[0].childNodes[0].nodeValue; document.getElementById("ref113").innerHTML=xmlVaudCRB.getElementsByTagName("ref113")[0].childNodes[0].nodeValue; document.getElementById("ref114").innerHTML=xmlVaudCRB.getElementsByTagName("ref114")[0].childNodes[0].nodeValue; }
Une des premières questions (rouge dans le code) est celle d'un débutant JS :
pourquoi dans la ligne "xmlVaudCRB.onload=getoffrevaudcrb;" on met pas () à la fin pour la fonction "getoffrevaudcrb" - il s'agit bien d'une fonction et ainsi écrire : "xmlVaudCRB.onload=getoffrevaudcrb();" - eh beh non ça marche pas si on met la paranthèse, mystère...
Deuxième question plus importante et qui fait l'objet du titre du message.
J'ai appris que la fonction "load" n'est pas standard W3C et qu'il faut utiliser "xmlhttprequest" pour que des navigateurs comme Safari,Chrome et Opera affiche le contenu que je désire.
Voici donc le code refait :
Eh beh cette fois-ci plus rien ne marche.... Fiorefox et IE inclus
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
24
25
26
27
28
29
30
31
32
33 var xmlVaudCRB; function loadXMLVaudCRB() { var xmlpath = "xml/vaudcrb.xml" var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", xmlpath, false); xmlhttp.setRequestHeader('Content-Type', 'text/xml'); xmlhttp.send(""); xmlVaudCRB = xmlhttp.responseXML; getoffrevaudcrb(); } function getoffrevaudcrb() { document.getElementById("ref100").innerHTML=xmlVaudCRB.getElementsByTagName("ref100")[0].childNodes[0].nodeValue; document.getElementById("ref101").innerHTML=xmlVaudCRB.getElementsByTagName("ref101")[0].childNodes[0].nodeValue; document.getElementById("ref102").innerHTML=xmlVaudCRB.getElementsByTagName("ref102")[0].childNodes[0].nodeValue; document.getElementById("ref103").innerHTML=xmlVaudCRB.getElementsByTagName("ref103")[0].childNodes[0].nodeValue; document.getElementById("ref104").innerHTML=xmlVaudCRB.getElementsByTagName("ref104")[0].childNodes[0].nodeValue; document.getElementById("ref105").innerHTML=xmlVaudCRB.getElementsByTagName("ref105")[0].childNodes[0].nodeValue; document.getElementById("ref106").innerHTML=xmlVaudCRB.getElementsByTagName("ref106")[0].childNodes[0].nodeValue; document.getElementById("ref107").innerHTML=xmlVaudCRB.getElementsByTagName("ref107")[0].childNodes[0].nodeValue; document.getElementById("ref108").innerHTML=xmlVaudCRB.getElementsByTagName("ref108")[0].childNodes[0].nodeValue; document.getElementById("ref109").innerHTML=xmlVaudCRB.getElementsByTagName("ref109")[0].childNodes[0].nodeValue; document.getElementById("ref110").innerHTML=xmlVaudCRB.getElementsByTagName("ref110")[0].childNodes[0].nodeValue; document.getElementById("ref111").innerHTML=xmlVaudCRB.getElementsByTagName("ref111")[0].childNodes[0].nodeValue; document.getElementById("ref112").innerHTML=xmlVaudCRB.getElementsByTagName("ref112")[0].childNodes[0].nodeValue; document.getElementById("ref113").innerHTML=xmlVaudCRB.getElementsByTagName("ref113")[0].childNodes[0].nodeValue; document.getElementById("ref114").innerHTML=xmlVaudCRB.getElementsByTagName("ref114")[0].childNodes[0].nodeValue; }
Je ne sais pas comment résoudre ce problème...
Une idéee?
Merci d'avance
Partager