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

jQuery Discussion :

Incompatibilité de la fonction find() avec IE6 ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 54
    Par défaut Incompatibilité de la fonction find() avec IE6 ?
    Bonjour,
    Pour réaliser des requêtes Ajax, j'utilise jQuery.
    Actuellement, je fais une requête sur une page PHP, qui me retourne un contenu "pseudo XML" que je génère à la volée dans le fichier PHP.
    Voici le code que mon fichier PHP génère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <categories>
    <categorie id=895>
    <nom>Essai</nom
    <descr>Description de la catégorie ESSAI.</descr>
    </categorie>
    <categorie id=541>
    <nom>Test</nom
    <descr>Description de la catégorie TEST.</descr>
    </categorie>
    </categories>
    Pour traiter ce fichier dans le Javascript, j'utilise la fonction find() pour trouver les différentes balises que je veux traiter.

    Voici le bout de code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(res).find("categorie").each(function()
    {
    // ici mon traitement ...
    });
    res correspond à ce que la requete retourne (soit le code précédent)

    Sous Mozilla, pas de problème, tout fonctionne très bien.
    Sous IE6, c'est la cata. Il ne trouve aucune balise "categorie".

    Après avoir recherché sur le Web, un bloggeur à abordé l'hypothèse que la fonction find() fonctionne mal (voir pas du tout) avec IE6 ... J'en doute fortement mais je commence à y croire après toutes mes tentatives qui ont échouées ...

    Merci d'avances pour vos pistes ou réponses !

    Bon week end !

    DJPi

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Voir : jQuery .find() doesn’t return data in IE but does in Firefox and Chrome

    http://stackoverflow.com/questions/5...fox-and-chrome

    Check the content type of the response. If you get messages.xml as the wrong mime type, Internet Explorer won't parse it as XML.

    ...

    I have actually just experienced .find() not working for a project in any browser but I was able to use .filter() instead. It's annoying that I had to resort to this but if it works....

    $(d).filter('message').each(......);
    Voir : http://www.developpez.net/forums/d72...e/#post4294950

    Attention : le xml ne marche pas en local pour IE, voir : http://docs.jquery.com/Specifying_th..._AJAX_Requests
    qui fait suite à :
    http://www.developpez.net/forums/d72...e/#post4192830

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 54
    Par défaut
    Merci pour ta réponse.
    Je regarderais tout ça demain et je vous tiendrais au courant !

    Bonne nuit !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 54
    Par défaut
    Bonsoir,
    @danielhagnoul, dans les liens que tu m'as donné, j'ai donc eu la confirmation que le each ne fonctionne pas avec IE6 que ce soit en local, ou en ligne. L'un des sujets du forum donne un exemple fonctionnant avec IE8, mais pas avec IE6 et le dernier lien ne fonctionne pas.

    J'ai donc essayé d'utiliser la fonction filter comme marqué dans le premier lien, et, je peux récupérer l'identifiant (id) qui est un attribut de ma balise Categorie.

    Cependant, je suis incapable de récupérer le contenu de ma balise Categorie.
    Voila où j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(res).filter('categorie').each(function()
    {
             var categorie = $(this);
             alert(categorie.attr('id')); // Je récupère bien cet attribut.
             $(categorie).filter('nom').each(function()
             {
                      var nom = $(this);
                      alert(nom.text()); // Aucune information. Aucun passage dans la boucle each.
             });
    });
    Mise à part le fait de tout passer en paramètre, je ne vois pas trop comment faire ?

    Merci à vous!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 54
    Par défaut
    Pas simple du tout finalement, c'est dans le fichier PHP qui génère le XML qu'il faut préciser qu'il s'agir de XML.

    C'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type:text/xml');
    Voila, find() fonctionne donc très bien avec IE à partir de là !

    Merci à toi danielhagnoul !

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

Discussions similaires

  1. [Toutes versions] Fonction FIND avec plusieurs valeurs dans une meme cellule.
    Par Manu3100 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/07/2015, 18h56
  2. [XL-2003] Fonction Find avec Array
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/10/2009, 14h53
  3. Fonction Find avec doublons
    Par Jeyjey1 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2008, 08h30
  4. problème d'incompatibilité avec IE6
    Par wind_vinch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/10/2007, 13h19
  5. [VBA-E]Problème avec la fonction Find
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2006, 18h43

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