[jQuery + XML] conversion en html
Bonjour,
Pour le travail, je dois convertir une chaîne xml en html à l'aide de jquery, sous firefox, aucun problème mais pour Internet Explorer c'est autre chose.
Ma chaine xml:
Code:
1 2 3 4
| <slide theme_url="" theme_color="red">
<text top="10px" left="10px" height="100px" width="200px" align="left">Contenu <b>de</b> la <i>zone</i> de <u>texte.</u></text>
<img src="http://www.google.com/intl/en_ALL/images/logo.gif" top="10px" left="220px" />
</slide> |
Le bout de code qui pose problème :
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 36 37 38 39 40
| function xmlToHtml(textarea){
var slide = $(textarea.val());
var theme_url = slide.attr('theme_url');
var theme_color = slide.attr('theme_color');;
content = $('<div></div>');
slide.children().each(function(){
var nodeName = $(this).get(0).nodeName.toLowerCase();
switch(nodeName){
case 'text':
var text = $('<div></div>');
text.css({
position: 'absolute',
left: $(this).attr('left'),
top:$(this).attr('top'),
height:$(this).attr('height'),
width:$(this).attr('width'),
align:$(this).attr('align')
});
text.append($(this).html());
content.append(text);
break;
case 'img':
var img = $('<img>');
img.css({
position: 'absolute',
left: $(this).attr('left'),
top:$(this).attr('top'),
height:$(this).attr('height'),
width:$(this).attr('width')
});
img.attr('src',$(this).attr('src'));
content.append(img);
break;
default:
alert('erreur');
break;
}
});
return content.html();
} |
Dans cette fonction, je récupère le textarea qui contient la chaîne xml que je souhaite parser.
Sous Internet Explorer je reçois une chaine vide
et Sous Firefox je reçois :
Code:
<div style="position: absolute; left: 10px; top: 10px; height: 100px; width: 200px;">Contenu <b>de</b> la <i>zone</i> de <u>texte.</u></div><img src="http://www.google.com/intl/en_ALL/images/logo.gif" style="position: absolute; left: 220px; top: 10px;">
Je viens de passer 2h sur ce problème et je ne sais toujours pas d'où peut venir cet erreur (je n'ai pas de message d'erreur qui s'affiche et j'ai testé sous IE6 et 7)