IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] compatibilité IE


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut [AJAX] compatibilité IE
    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  ;
            }
        }
    }

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    IE détecte un objet et pas un objetXML
    Dans un alert, IE affiche toujours [Object], quelque soit cet objet, donc a priori ca ne veut pas dire que ton objet n'est pas un document xml.

    Sinon, ton problème doit probablement venir de la différence d'interprétation du xml entre IE et FF, expliquée ici

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Juste une remarque : il me semble dangereux de nommer une fonction "nodeList", étant donnée l'homonymie avec l'interface NodeList implémentée dans les spécif DOM2 ^^ (et qui représente, entre autres, le type de retour de fonctions comme getElementsByTagName)

  4. #4
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Juste une remarque : il me semble dangereux de nommer une fonction "nodeList", étant donnée l'homonymie avec l'interface NodeList implémentée dans les spécif DOM2 ^^ (et qui représente, entre autres, le type de retour de fonctions comme getElementsByTagName)
    A partir du moment ou nodeList n'est pas un mot clé du langage, pas de danger

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Non effectivement tu as raison sur le plan technique : je pensais plutot à des confusions sur le plan logique, on est jamais sur d'etre le dernier utilisateur/debuggeur de son propre code... ^^

Discussions similaires

  1. [AJAX] Compatibilité navigateurs
    Par charlottebardet dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 29/04/2008, 09h48
  2. [AJAX] Compatibilité firefox / IE6
    Par bioinfo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2008, 13h44
  3. [AJAX] compatibilité avec les tables
    Par zooffy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/12/2007, 11h15
  4. [AJAX] Compatibilité IE / FF pour ajax ?
    Par crepeOsucre dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/06/2007, 17h00
  5. [AJAX] compatibilité restreinte
    Par cyrill.gremaud dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 17/11/2006, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo