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

JavaScript Discussion :

[AJAX] getElementsByTagName() avec IE


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut [AJAX] getElementsByTagName() avec IE
    Salut,

    J'implore votre aide car j'ai un problème incompréhensible avec IE (ça marche avec Firefox).

    Voici le fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <messages>
    	<message>message 1</message>
    	<message>message 2</message>
    </messages>
    Et voici la portion de javascript qui déconne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function displayMessages(docXML)
    {
    	var items = docXML.getElementsByTagName("message");
    	alert(items);
    	alert(items.length);
    }
    Cette fonction est appelée comme ça : displayMessages(xhr.responseXML);

    alert(items) me renvoie bien un object sous IE et Firefox, mais alert(items.length) me renvoie 2 sous Firefox et 0 sous IE

    J'ai cru que mon fichier XML devait contenir des trucs genre contentType="text/xml", ..., mais rien à faire, ça ne marche pas sous IE !

    Je tiens à signaler que l'initialisation de l'objet XMLHTTPRequest se fait sans problème, ainsi que la récupération du XML.

    MERCI car depuis hier soir je cherche...

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par jeyce
    Cette fonction est appelée comme ça : displayMessages(xhr.responseXML);
    Essaye avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    displayMessages(xhr.responseXML.documentElement);
    Citation Envoyé par jeyce
    alert(items) me renvoie bien un object sous IE et Firefox, mais alert(items.length) me renvoie 2 sous Firefox et 0 sous IE
    Il te renvoie quel type d'objet, dans les deux cas?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    salut !

    tu n'as pas la possiblité de le faire avec un getElementsByID ?

    je sias que sa marche sur tous les browser en tout cas je n'ai jamais rencontré de problème avec mais avec le ByTag il se passait un truc louche sous Opéra...

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Salut, est-ce que ton appli est sur un serveur ou directement en local?

    Une personnne semble avoir le même problème que toi : http://www.developpez.net/forums/arc.../t-142646.html

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Merci pour votre participation.

    Voici les nouvelles :
    - déjà, oui je suis en local
    - le problème semble venir du fait que IE ne considère pas le fichier comme un fichier XML, car en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var docXML = new ActiveXObject("Microsoft.XMLDOM");
    docXML.loadXML(xhr.responseText);
    displayMessages(docXML);
    pour IE, et en laissant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    displayMessages(xhr.responseXML);
    pour Firefox, ça marche sous IE.

    Donc le problème est de faire comprendre à IE que c'est bien un fichier XML, mais comment ? Est-ce parce que je suis en local ? Est-ce parce que pour créer le XML j'ai fait "Nouveau document texte" et que j'ai renommé l'extension en .xml ?

    J'attends avec impatience votre avis...

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    C'est à cause du type MIME...
    En local, il n'y a pas de serveur et pas de type MIME envoyé à IE qui ne "lit" pas le document XML....

    Il y a une solution pour forcer IE à le prendre comme un xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    overrideMimeType("text/xml")

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par FremyCompany
    C'est à cause du type MIME...
    En local, il n'y a pas de serveur et pas de type MIME envoyé à IE qui ne "lit" pas le document XML....

    Il y a une solution pour forcer IE à le prendre comme un xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    overrideMimeType("text/xml")
    Non, cette méthode est dédiée aux navigateurs qui ont window.XMLHttpRequest (Firefox), sous IE ce n'est pas reconnu.

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par jeyce
    Donc le problème est de faire comprendre à IE que c'est bien un fichier XML, mais comment ? Est-ce parce que je suis en local ? Est-ce parce que pour créer le XML j'ai fait "Nouveau document texte" et que j'ai renommé l'extension en .xml ?
    A mon avis, c'est peu intéressant de traiter ce problème en local. C'est un problème de type MIME qui de toute façon se reposera avec un serveur, donc autant avoir un serveur pour essayer de le regler....

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Au contraire, on peut imaginer un tas d'applications locales parsant des .xml !

Discussions similaires

  1. [AJAX] PHP avec ajax(makerequest)
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2006, 16h53
  2. [AJAX] probleme avec innerhtml
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/03/2006, 13h21
  3. AJAX : Problème avec les accents...
    Par @drien dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/01/2006, 14h33
  4. [AJAX] Problèmes avec les caractères accentués
    Par marti dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 26/10/2005, 14h10

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