Bonjour,

Je vous explique mon problème. J'ai une liste d'articles sur une page html et en cliquant sur cette liste je dois récupérer les informations de l'article et les afficher sur la même page. Mon script marche sous FF, mais pas sous IE. en fait au niveau du var reponseXML, IE détecte un objet et pas un objetXML, du coup au var artCodeNodeList il trouve 0 noeuds et le script s'arrête.

Voici mon code.

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
var num = 0;
var tabCode = new Array();
var numberArt = 0;
 
function recupCodes(fam,sfa) {
   //alert( 'update page' ) ;
    var adressXml2 = getAdresseSite() + "url";
    //alert( 'url = ' + adressXml2 ) ;
 
    var laRequete2 = new Ajax.Request(adressXml2,{
        method: 'get',
        parameters: '',
        onComplete: function( requeteReponse ) {
            //alert( 'analyse réponse' ) ;
 
            /*if (window.XMLHttpRequest) {
                reponseXML = requeteReponse.responseXML;
            } else if (window.ActiveXObject) {
                reponseXML = new ActiveXObject("Microsoft.XMLDOM");
                reponseXML.loadXML(requeteReponse.responseText);
            }*/
 
            var reponseXML = requeteReponse.responseXML;
            //alert(reponseXML);
 
 
            var artCodeNodeList = reponseXML.getElementsByTagName('art_code');
 
            //alert( 'trouvé : ' + artCodeNodeList.length + ' noeuds' ) ;
 
            numberArt = artCodeNodeList.length;
 
            for( var index = 0 ; index < artCodeNodeList.length ; index++ ) {
 
                var artCodeNode = artCodeNodeList[index] ;
                if( artCodeNode.firstChild != null ) {
                    var artCode = artCodeNode.firstChild.nodeValue ;
                    //alert( 'ajout de : ' + artCode ) ;
                    tabCode.push( artCode );
                }
            }
            appelXml(tabCode[num]);
        }
    } );
}
 
function appelXml( artCode ) {
    //    alert( 'update page' ) ;
    var adressXml = getAdresseSite() + "url";
    //    alert( 'url = ' + adressXml ) ;
    var laRequete = new Ajax.Request(adressXml,{
        method: 'get',
        parameters: '',
        onComplete: function( requeteReponse ) {
                        //alert( 'analyse réponse dans AppelXML' ) ;
            var reponseXML = requeteReponse.responseXML ;
 
 
            var photoArticle = reponseXML.getElementsByTagName('artimg_libelle')[0].firstChild.nodeValue ;
            $('photo_article').innerHTML = '<img src="/images/images1/' + photoArticle + '" onerror="this.src=\'/images/images1/sans_image.jpg\';" />' ;
 
 
            $('infos_article').innerHTML = '<strong>R&eacute;f&eacute;rence</strong> : ';
            var codeArticle = reponseXML.getElementsByTagName('art_code');
            //   alert( codeArticle ) ;
            nodeList(codeArticle);
 
 
            $('infos_article').innerHTML += '<br /><br /><strong>D&eacute;signation</strong> : ';
            var infoArticle = reponseXML.getElementsByTagName('arttr_libelle');
            //  alert( infoArticle ) ;
            nodeList(infoArticle);
 
 
            $('infos_article').innerHTML += '<br /><br /><strong>Informations techniques</strong> : ';
            var infoTech = reponseXML.getElementsByTagName('arttr_inf_tec') ;
            nodeList(infoTech);
 
 
            $('infos_article').innerHTML += '<br /><br /><strong>Dimensions</strong> : ';
            var dimArticle = reponseXML.getElementsByTagName('arttr_dimensions');
            nodeList(dimArticle);
 
 
            var prixArticle = reponseXML.getElementsByTagName('arttar_prix_ttc')[0].firstChild.nodeValue ;
            //alert( prixArticle ) ;
 
            /*----Formatage prix----*/
            //alert( prixArticle.length ) ;
            var longeurPrix = prixArticle.length;
            var positionPoint = prixArticle.indexOf('.',0);
            //alert(positionPoint);
            var test = longeurPrix - positionPoint;
            if (test == 3){
                prixFinal = prixArticle;
            }
            else{
                prixFinal = prixArticle+'0';
            }
 
 
            $('infos_article').innerHTML += '<br /><br /><strong>Prix T.T.C</strong> : '+prixFinal+' &euro;'  ;
            //alert(photoArticle);
 
            $('infos_article').innerHTML += '<div id="spacer-detail"></div>';
            $('infos_article').innerHTML += '<span class="btn-detail"><img class="btn-zoom" src="/images/site/boutons/zoom.gif" onclick="makeZoom(\'/images/images4/'+photoArticle+'\', \'img\');" />';
            //alert(artCode);
            $('infos_article').innerHTML += '<a href="url"><img src="/images/site/boutons/detail.gif" /></a></span>'
 
            totalNum = numberArt-1;
            $('compteur').innerHTML = num+' / '+totalNum;
 
        }
    } );
}
 
 
 
function nodeList(info){
    if( info.length > 0 ) {
        var infoNode = info[0] ;
        if( infoNode.firstChild != null ) {
            var infoValue = infoNode.firstChild.nodeValue;
            //alert('tech :'+dimArticle);
            //alert('tech chaine : '+dimArticle.length);
            $('infos_article').innerHTML += infoValue  ;
        }
    }
}