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 :

parse de XML avec IE


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 15
    Points : 19
    Points
    19
    Par défaut parse de XML avec IE
    Bonjour,
    Je réalise actuellement un site et je veux utiliser Ajax via JQuery.
    Pour ceci, chaque lien appelant une nouvelle page passe par ma fonction MyAjax qui renvoie le contenu à parseXML, je vous colle le code source :
    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
    function myAjax(prmPage, prmParam) {
    	var page = 'ajax.php?page='+prmPage+prmParam ;
    	$.ajax({
    		type: "GET",
    		url: page,
    		dataType: "xml",
    		complete : parseXml
    	});
    }
     
    function parseXml(prmData){
    	//var xml = prmData.responseXML ;
    	var xml = prmData.responseText ;
            alert(prmData.responseText) ;
            $(xml).find('item').each(function(){
                var type = $(this).attr('type') ;
                var texte = $(this).html() ;
                if(type == 'div') {
                        var id = $(this).attr('name') ;
                        $('#'+id).html(retireCdata(texte)) ;
                }else if(type == 'css') {
                        $('head').append('<link type="text/css" rel="stylesheet" href="'+texte+'" />') ;
                }else if(type == 'script') {
                        $.ajax({
                                type: "GET",
                                url: texte,
                                dataType: "xml",
                                complete : myIncludeScript
                        });
                }else if(type == 'javascript') {
                    var js = retireCdata(texte) ;
                    eval(js) ;
                }
    	}) ;
    }
    la page ajax.php renvoie en XML le contenu de la page par exemple :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8"?>
     
    		<root>
     
    			<item type="css">site/public/css/style.css</item>
     
    			<item type="div" name="page"><![CDATA[<div id="menu_droite">
     
        page test
     
    </div>]]></item>
                            <item type="javascript">scroll_up("menu_droite");</item>
     
    		</root>
    Une fois la page envoyée et récupérée, le XML va dans ParseXML, jusque là tout va bien : ca marche sur Firefox.

    Mon premier soucis, pour le faire fonctionner sur Firefox, je dois récupérer le xml en faisant prmData.responseText, si je fais un prmData.responseXML, le find() ne me retourne rien et ca ne marche donc pas.
    Mon second soucis c'est que IE 7, je n'ai aucune erreur de script mais quelque soit le type de response choisi, il ne me trouve rien.

    J'ai essayer avec du code plus simple du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div>
        <span>Span 1</span>
        <span>Span 2</span>
    </div>
    <script>
    $('div').find('span').each(function(){alert($(this).html);}) ;
    </script>
    et là ca fonctionne sur IE comme sur FF.
    Je sèche car j'ai essayé de trouver la solution via internet et tout semble concordé.
    Si quelqu'un a une idée...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Bon ça y est !
    Je cherchais trop du côté de IE plutôt que de me pencher sur le soucis qui faisait que FF ne lisait pas le reponseXML mais que le reponseText

    En fait j'avais pas mis d'entête à ma sortie XML. Donc en rajoutant simplement un header donnant le type XML ça fonctionne avec le reponseXML et donc sur IE comme FF.

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

Discussions similaires

  1. Parsing namespace XML avec Jquery
    Par gégé140488 dans le forum jQuery
    Réponses: 3
    Dernier message: 07/09/2012, 13h18
  2. parse fichier XML avec url dans le text
    Par bruno.rotrou dans le forum jQuery
    Réponses: 4
    Dernier message: 21/06/2011, 12h13
  3. [SAX] Recuperer le resultat d"un parsing XML avec SAX
    Par chouxe dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/12/2006, 15h48
  4. [SAX] Erreur de parsing XML avec SAX
    Par philobedo dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 02/08/2006, 13h49
  5. [JSP] Parsing XML avec JDOM
    Par benben13 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 26/08/2005, 17h19

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