0

Essayer de faire une recherche XML de base. Le code fonctionne comme prévu dans Firefox et Opera, ce qui signifie qu'il alerte avec la valeur textuelle du noeud "title" du document XML. Mais dans IE7, je reçois "objet requis" de cette ligne. Btw, ça fonctionnait très bien avec responseText (et un fichier txt). Mais je avait pour utiliser l'objet ActiveX pour obtenir ce qui fonctionne dans IE ... étrange b/c je pensais qu'il a soutenu l'objet XMLHttprequest. Peut-être que cela a quelque chose à voir avec ça?getElementsByTagName objet requis? Vraiment coincé!

[modifier]

ok j'ai remplacé la ligne avec ce

x=xhttp.responseXML.childNodes.length; 
    alert(x); 

dans FF il y a 2 nœuds, dans IE il y a 0. Alors, évidemment, il ne peut pas lire 0 childNodes. A quelque chose à faire avec les espaces, je suppose? Ce qui donne?

[mise à jour]

Il est tout lié à mon ignorance de la façon d'utiliser MSXML.DOMDocument et Msxml.XMLHTTP ActiveXObjects. J'apprends sur ces objets au lien suivant:

Program with DOM in JScript

et je répondre à ma question dans quelques jours ...

Répondre

1

Je l'ai compris. Je n'ai pas mentionné que jusqu'à présent je développe ceci sur des dossiers sur mon disque dur. C'était le problème. Je voudrais citer « Ultimator » dont la réponse que j'ai découvert sur webdeveloper.com à ce fil: http://www.webdeveloper.com/forum/showthread.php?t=147342

XMLHttpRequest natif de IE7 est impuissant même à un fichier dans le même répertoire, mais, dans la même situation, ActiveX serait capable de servir IE7 normalement. La raison en est que l'objet XMLHttpRequest d'IE7 est limité au web. D'où votre erreur "accès refusé dans IE7" depuis que IE7 dans votre code est servi via XMLHttpRequest plutôt que ActiveX. En revanche, l'objet XMLHttpRequest de Firefox permet à la fois des requêtes locales et des requêtes sur le web.

En fait, je ne comprends même pas pourquoi l'objet requis se passait. Pendant un moment, je suis passé à l'utilisation de l'objet msxml.DOMDocument.3.0, et j'ai travaillé localement. Puis j'ai continué à lire sur la façon dont XMLHttpRequest était supporté dans IE7, donc je suis retourné à travailler sur cet objet. Après avoir lu des tutoriels sur MSDN, j'ai remarqué qu'ils ont suggéré de créer un « répertoire virtuel » et utiliser les fichiers sur

http://localhost. 

J'avais l'idée, eh bien pourquoi ne puis-je simplement la demande de quelque part sur la l'Internet? Et j'ai fait: un exemple de fichier XML sur w3schools. Devine quoi?Cela a fonctionné dans IE7 et j'ai pu tirer le texte que je voulais avec selectSingleNode. Mais dans Firebug, il est dit, xmlDoc.responseXML est null. Intéressant ...

Donc, finalement, j'ai décidé d'activer IIS sur ma machine (j'ai Vista Home Premium) et d'utiliser localhost. Ça a marché! FF, IE, Chrome et Opera ont accédé aux fichiers de la même manière. La leçon que j'ai apprise est la suivante: vous pouvez utiliser localhost pour simuler le comportement d'un serveur, ce qui est utile lors du développement local. Avec FF n'accédant pas au fichier distant, et IE étant capable d'y accéder, je ne comprends pas vraiment ... oh bien pour l'instant mon problème est résolu, je rapporterai avec de futures frustrations. Merci d'avoir lu!

0

Il n'y a aucune raison pour laquelle cela ne devrait pas fonctionner, par exemple:

var xml = response.responseXML, 
    node = xml.getElementsByTagName('child')[0]; 

alert(node.childNodes.length); 

En utilisant le code XML suivant

<root> 
    <child> 
     <foo /> 
    </child> 
</root> 

Quand je lance Dans IE7, il affiche correctement 1. Définissez-vous correctement le type de contenu de la réponse sur text/xml?