Firefox 3 et les espaces de nom XML

19/05/2008

Alors que je développais des évolutions pour CWE et le widget TV Programme TV par Télé-Loisirs, je me suis trouvé confronté à un bug assez spécial. Tous mes parsing RSS fonctionnaient, sauf un: celui du programme TV.

Après moultes recherche, je me suis rendu compte que Firefox 3 ne gère plus les espace de nom XML de la même manière. Prenons l’exemple de la balise très connue content:encoded. FireFox 2 la gèrait de la manière suivante: var content = getElementsByTagName('encoded')[0] //content.namespace valait "content" Or depuis la version 3.0 RC1 (et certainement les betas précédentes), Firefox utilise la même méthode que IE, à savoir: var content = getElementsByTagName('content:encoded')[0]

C’est une évolution plutôt violente. En effet, tous les parsings DOM utilisant des espaces de noms vont devoir tester la version du navigateur. Pour ma part, je fais ce test: var prefix = ""; if(window.ie || navigator.userAgent.match(/Firefox\/3/)){ prefix="content:" } //... //et ensuite, dans mon parse item.getElementByTagName(prefix + "encoded")[0]

Cela permet à Firefox 2, Safari, Opera… de continuer à utiliser les récupération de balises simple avec un attribut de namespace, et pour IE et FireFox 3 d’utiliser les prefixs de namespace dans le nom de la balise.

Je suis plutôt choqué de ce virage pris par Firefox dans le sens où cela parait plus logique que content:encoded est une balise “encoded” de l’espace “content”…

Je ne sais pas si vous partagez mon opinion… mais je préférais l’ancienne méthode.

Ça peut vous intéresser aussi


CSS 3 et tant pis pour les autres

Un truc me titillent les neurones depuis quelques temps, et ...


Firebug 1.5 bug sur Firefox 3.5 et solution

Vous le saviez peut-être mais firebug 1.5 corrige un ...


CSS transformations transitions animations

Les animations dans une page web, Dieu sait à quel ...


Nouveau design de blog

Et voilà, j’ai hésité à le mettre… mais je ...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.