[AJAX/DOM] bug sous IE
Résolu
wolfy
-
wolfy -
wolfy -
Bonjour à tous,
je suis entrain de travaillé sur la compatibilité de mon site, sous firefox aucun problème mais sous IE ...
pour ne pas retaper tout mon code je vais expliquer vite fait:
je reçois de l'AJAX un arbre en XML, que je parse pour l'afficher dans un tableau, la où cela coince c'est que toute les balises XML ne sont pas toujours présente, je test donc si elle existe par un simple if qui test si la balise <NAMEDEVICE> existe :
if(((x[i].getElementsByTagName("NAMEDEVICE")[0]=="[object Element]") || (x[i].getElementsByTagName("NAMEDEVICE")[0]=="[object]")) && (x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue.search("IP Phone")!=-1))
un peu lourd je sais ... sous firefox ca passe nikel mais sous IE il s'y arrete direct.
x = mon arbre XML
x[i] = une partie de l'arbre
si quelqu'un a une solution ou une piste a me proposer, il est le bien venu
merci a tous
je suis entrain de travaillé sur la compatibilité de mon site, sous firefox aucun problème mais sous IE ...
pour ne pas retaper tout mon code je vais expliquer vite fait:
je reçois de l'AJAX un arbre en XML, que je parse pour l'afficher dans un tableau, la où cela coince c'est que toute les balises XML ne sont pas toujours présente, je test donc si elle existe par un simple if qui test si la balise <NAMEDEVICE> existe :
if(((x[i].getElementsByTagName("NAMEDEVICE")[0]=="[object Element]") || (x[i].getElementsByTagName("NAMEDEVICE")[0]=="[object]")) && (x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue.search("IP Phone")!=-1))
un peu lourd je sais ... sous firefox ca passe nikel mais sous IE il s'y arrete direct.
x = mon arbre XML
x[i] = une partie de l'arbre
si quelqu'un a une solution ou une piste a me proposer, il est le bien venu
merci a tous
A voir également:
- [AJAX/DOM] bug sous IE
- Bug chromecast - Guide
- Ie tab - Télécharger - Outils pour navigateurs
- Iptv bug ✓ - Forum TV & Vidéo
- Bug localisation snap ✓ - Forum Snapchat
- Bill ie cork ✓ - Forum Consommation & Internet
4 réponses
pour moi "[object Element]" et "[object]" correspondent à des résultats de conversions d'objet en chaîne de caractères... amha ce n'est pas le genre d'élément à utiliser pour tester un objet.
Un test avec uniquement l'objet devrait suffire quelque-soit le navigateur.
Tente un essai du genre :
Un test avec uniquement l'objet devrait suffire quelque-soit le navigateur.
Tente un essai du genre :
if(x[i] && x[i].getElementsByTagName("NAMEDEVICE")
&& x[i].getElementsByTagName("NAMEDEVICE")[0]) {
nameDeviceNode = x[i].getElementsByTagName("NAMEDEVICE")[0];
if (nameDeviceNode
&& nameDeviceNode.childNodes[0]
&& nameDeviceNode.childNodes[0].nodeValue.search("IP Phone")!=-1) {
// @todo implémentation
}
}
Bonjour,
Pour essayer de comprendre ce qui ne se passe pas correctement, je te conseille de rajouter, juste avant ton « if », ces quelques traces :
alert(x[i].getElementsByTagName("NAMEDEVICE")[0]);
alert(x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue.search("IP Phone"));
Ça permettras de savoir où il ne passe pas...
Xavier
Pour essayer de comprendre ce qui ne se passe pas correctement, je te conseille de rajouter, juste avant ton « if », ces quelques traces :
alert(x[i].getElementsByTagName("NAMEDEVICE")[0]);
alert(x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue.search("IP Phone"));
Ça permettras de savoir où il ne passe pas...
Xavier
je l'ai deja fait mais en gros ca m affiche:
alert(x[i].getElementsByTagName("NAMEDEVICE")[0]);
=> null , [object] ou [object Element]
alert(x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue);
=> si le premier est différent de null ca affiche : Cisco Ip Phone ... par contre si le premier est null la ca plante mais ca c est normal vu que ca n'existe pas
alert(x[i].getElementsByTagName("NAMEDEVICE")[0]);
=> null , [object] ou [object Element]
alert(x[i].getElementsByTagName("NAMEDEVICE")[0].childNodes[0].nodeValue);
=> si le premier est différent de null ca affiche : Cisco Ip Phone ... par contre si le premier est null la ca plante mais ca c est normal vu que ca n'existe pas