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] Ajax XML sous 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
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Par défaut [AJAX] Ajax XML sous IE
    Salut tout le monde

    J'ai un petit problème avec un script que je suis en train de réaliser. C'est de l'ajax asynchrone tout ce qu'il y a de plus basique. Cependant IE fait sa forte tête.

    Dans ma fonction qui traite le changement d'état, j'ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var xmldoc = httpRequest.responseXML;
    var root = xmldoc.getElementsByTagName('sargeras').item(0);
    alert(root.childNodes[0].nodeType); return;
    Donc là pas de problème il m'affiche un type de node 1, càd un élement. Pareil si j'essaye d'afficher la taille du root.childNodes.length, j'ai bien 2, la bonne valeur.

    Mais quand j'essaye de faire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var xmldoc = httpRequest.responseXML;
    var root = xmldoc.getElementsByTagName('sargeras').item(0);;
    news = root.childNodes[0];
    Il me dit que j'ai une erreur (Cet objet ne gère pas cette méthode ou propriété) a la dernière ligne! Je pige vraiment pas là.

    Voila le code complet:
    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
    	function response(httpRequest){
    		if (httpRequest.readyState == 4) {
    			if (httpRequest.status == 200) {
    				var xmldoc = httpRequest.responseXML;
    				var root = xmldoc.getElementsByTagName('sargeras').item(0);
    				//alert(root.childNodes[0].nodeType); return;
    				news = root.childNodes[0];
    				news_title = news.childNode[0].nodeValue;
    				news_title = news.childNode[1].nodeValue;
    				news_title = news.childNode[2].nodeValue;
    				news_title = news.childNode[3].nodeValue;
    				news_id = news.id;
    				document.getElementsById("newscontent").innerHTML = news_content;
    			} else {
    				alert("Erreur "+httpRequest.status);
    			}
    		}
    	}

  2. #2
    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
    Le problème que tu décris est étrange en effet...
    Mais tant qu'on est dans les bizarreries, explique-moi ça :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    news_title = news.childNode[0].nodeValue;
    news_title = news.childNode[1].nodeValue;
    news_title = news.childNode[2].nodeValue;
    news_title = news.childNode[3].nodeValue;
    pourquoi les 3 premières assignations ?

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsById("newscontent").innerHTML = news_content;
    d'où vient ce news_content... ? (attention au danger d'utiliser des globales à toutes les sauces : portée des variables...)

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    @RomainVALERI:

    @NathanD: essaie ainsi en créant la variable news:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var xmldoc = httpRequest.responseXML;
    var root = xmldoc.getElementsByTagName('sargeras').item(0);;
    var news = root.childNodes[0];
    ERE

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Par défaut
    @RomainVALERI: Les trois assignations sont effectivement bizarre, c'est juste que c'est en code en cours et je n'avais effectivement pas fini d'assigner les variable aux valeurs après un copier-coller, rien de très grave. Le news_content sort d'ailleurs de là, car en fait les 4 assignations identiques correspondent a news_content, news_author, news_title et news_date.
    Je ne suis pas fou au point d'utiliser des globales pour ça!

    @emmanuel.remy: Alors a part le fait que cela change la portée de la variable, je vois pas ce que ça change et pourtant ca MARCHE! Merci, mais est-ce que tu pourrais me dire la cause de ce problème?

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Peut-être un début d'explication dans la FAQ : http://javascript.developpez.com/faq...arer-variables
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Par défaut
    Effectivement, merci Bovino. Je ne connaissais pas cette particularité de IE (accès aux elements directement par un variable qui a pour nom leur ID).

    Mais en fait c'est pas plus mal ça oblige a programmer proprement même si c'est vraiment tordu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement AJAX via XML sous IE
    Par scfi1 dans le forum jQuery
    Réponses: 4
    Dernier message: 05/07/2010, 14h49
  2. [AJAX] Ajax et liens sous IE
    Par Philinfo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/06/2007, 19h06
  3. [AJAX] Impossible d'utiliser mon fichier XML sous IE
    Par iluv dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2007, 12h01
  4. [AJAX] Parsage XML ne fonctionne pas sous IE!
    Par webrider dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/03/2007, 19h50
  5. [AJAX] [Ajax + PHP + XML] Parser le XML
    Par Dolerho dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/11/2006, 07h43

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