2009-12-15 10 views
1

J'ai créé une extension pour mediawiki qui fonctionne dans tous les principaux navigateurs autres que IE (n'importe quelle version il apparaît). L'extension repose sur le wrapper ajax de mediawiki pour envoyer un xmlhttprequest avec des paramètres qui construisent essentiellement une requête de base de données vers un script PHP. Ce script lancera une requête basée sur les paramètres puis créera un objet XML (en utilisant la classe simplexml de php) qui retournera ensuite le XML en javascript pour l'afficher dans le navigateur (juste un tableau, pour la plupart).Mediawiki + AJAX + IE = cassé

Maintenant avec toutes ces informations, IE semble fonctionner jusqu'au moment où il essaye d'analyser le XML retourné. J'ai mis le type mime à application/xml et j'ai essayé de le charger avec différentes techniques trouvées via google (aucune travaillé).

Il est trivial de charger le XML pour l'analyse lors de l'utilisation des navigateurs non IE:

function callbackHCL(response){ 
    if (response.readyState == 4) { 
     var xmlObj = response.responseXML; 
      if (response.status == '200'){ 
       if (xmlObj !== undefined){ 
        //etc... 

Maintenant, je peux commencer à utiliser les fonctions de dom pour obtenir des données à.

Ma question: Est-ce que quelqu'un a des suggestions sur la façon d'analyser xml dans IE en fonction de mon scénario actuel?

Si vous souhaitez m'envoyer un email à [email protected], je peux fournir des extraits de code plus longs, ils sont plus longs et je ne crois pas qu'ils aideraient la situation. Si vous souhaitez que je poste plus de code, il suffit de demander aussi.

Merci à l'avance, Tim

Répondre

1

Je pense que cela pourrait être ce que vous voulez: http://dean.edwards.name/weblog/2006/04/easy-xml/. Fondamentalement, IE ne renvoie pas un document XML comme les autres gars. Besoin de faire un petit jeu de jambes pour le faire fonctionner correctement. Je suis sûr qu'il y a une bibliothèque qui s'occupe de tout cela pour que vous n'ayez pas à vous en soucier si vous ne le voulez pas.

+0

Merci bialecki. C'est très similaire à quelque chose que j'ai trouvé en cherchant, mais cela explique mieux les choses. ça ne résout pas complètement mon problème, mais ça m'excite un peu. Avec les outils de développement sur, je peux regarder les mes "Locals", mais sous childNodes.item, il dit "nombre de paramètres invalides". J'utilise childNodes dans mon JS et j'espère que si je résous ce problème, je serai prêt. Je vais regarder cela entre temps, mais toute autre orientation ou liens que vous avez aiderait énormément. Merci – TIm

+0

Pouvez-vous me montrer l'extrait de JS qui ne fonctionne pas et aussi me donner une idée de ce à quoi ressemble la réponse XML? – Bialecki

+0

AHA! J'ai utilisé votre solution, puis j'ai découvert que ce n'était pas le problème childNodes mais que j'utilisais object.textContent. Au lieu de cela, j'ai utilisé object.firstChild.data. Voila, ça fonctionne comme un charme. Merci beaucoup pour votre aide, Bialecki. – TIm