Bonjour,
Je dois convertir une application web ie seulement pour qu'elle supporte firefox 3.
Dans l'application, un objet XMLHttpRequest retourne une string construite côté PHP. Jusque là, aucun problème, le XML dans la string est intact. Par contre, pour construire la page, lancer les évenements, etc. des XPaths doivent être utilisés pour extraire l'information. Nous transformons donc la string en XML à l'aide de la méthode parseFromString de DOMParser.
Le problème, c'est que cette méthode transforme les noeuds xml vide de type
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part <item id=... ></item>
Donc, quand les parties voulues du xml sont ajoutés à la page html par innerHTML ou par node.appendChild, Firefox 3 n'interprète pas bien les balises de type <item id=... /> dans les ilots de données xml et interprète ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <item id=... />
comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <item ... /> <item ... /> <item ... />
en considérant les premières balises comme n'étant pas fermées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <item ...> <item ...> <item ...></item> </item> </item>
Le doctype utilisé est XHTML 1.0 transitionnel avec un mimetype text/html. Utiliser le mimetype application/xhtml+xml est inpensable puisqu'à ce point, rendre l'application "réellement compatible" xhtml ne pourrait être fait dans des délais raisonnables.
De plus, les "data island" sont essentiels dans le code puisque nous utilisons des composants ajax qui s'initialisent à partir de ces ilots de données xml (Le grid et le combo de nitobi).
Est-ce que quelqu'un d'entre vous connaîtrais une méthode pour contourner ce problème?
Partager