Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 02h24   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 15
Points : 11
Points : 11
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 :
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 :
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 :
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...
gnappy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 20h40   #2
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 15
Points : 11
Points : 11
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.
gnappy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h15.


 
 
 
 
Partenaires

Hébergement Web