Je suis assez nouveau à Ajax. Je suis en train de mettre certaines parties spécifiques d'un fichier XML dans un div sur ma page, et les travaux suivants dans tous les navigateurs récents, sauf IE:Ajax erreur "undefined" dans IE
var xhr = false;
//Executed to request content from the server
function setContent(){
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
} else {
if(window.ActiveXObject){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xhr.onreadystatechange = showContent;
xhr.open("GET", "ajax/art.xml", true);
xhr.send(null);
}
//Executed to set the appropriate text once the server has gathered the data
function showContent(){
if(xhr.readyState == 4){
if(xhr.status == 200 || window.location.href.indexOf("http") == -1){
var newData = xhr.responseXML.getElementsByTagName(curPage).textContent;
}
var textBox = document.getElementById("textBox");
textBox.innerHTML = newData;
}
}
(La valeur de curPage est définie ailleurs dans le code et semble avoir la valeur correcte) Lorsque j'exécute ce code dans IE sur le serveur, j'obtiens le mot "undefined" dans le textBox Div au lieu du contenu saisi du document XML. Comment résoudre ça?
Merci à l'avance <> <
Merci bobince, mais cela ne semble pas fonctionner non plus.
C'est une note intéressante à propos de textContent. J'ai essayé:
if(xhr.responseXML.getElementsByTagName(allPages[curPage])[curStage].textContent != undefined){
var newText = xhr.responseXML.getElementsByTagName(curPage)[curStage].textContent;
} else {
var newText = xhr.responseXML.getElementsByTagName(curPage)[curStage].innerText
}
}
depuis innerText devrait fonctionner dans tous les navigateurs sauf FF et textContent devrait fonctionner dans tous les navigateurs sauf IE, mais je reçois encore « non défini » dans IE.
En outre, si j'utilise simplement innerText et oublie la compatibilité FF, je suis "indéfini" dans tous les navigateurs, pas seulement IE.
Je ne sais pas comment remédier à cette situation ...
Voici le site en direct si cela aide: www.tcmulder.com/art
(Oh, et je remarque que je utilise (curPage) [curStage], fixe le premier problème que vous avez noté)
Avez-vous envisagé d'utiliser un framework JS comme [jQuery] (http://jquery.com/)? Cela va rendre votre vie beaucoup plus facile. – NullUserException
J'essaie de démontrer mes compétences de codage à la main JavaScript dans ce site Web. J'ai reconstruit cette partie avec jQuery, mais je voudrais éviter cela dans le site web final.Super cadre, cependant: merci pour le pourboire. – tcmulder
Y at-il une possibilité que nous puissions nettoyer cette question? Il y a des réponses aux réponses qui ont été affichées en tant que réponses complètes au lieu de commentaires ou d'ajouts à la question originale. –