Hola!
Estoy haciendo una aplicacion que carga un menu de un fichero xml, y no conseguia que funcionase correctamente en IE y Mozilla. Al final he encontrado el fallo, a ver si alguien me dice por que pasa.
En el explorer me dice que tengo 5 hijos (que es lo correcto)
En cambio en el mozilla me dice que tengo 11!! por lo que continua ejecutando el bucle y peta el javascript!
Este seria el fichero XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<menu>
<sel id="1" ref="indetity">identity role</sel>
<sel id="2" ref="structure">structure and tools</sel>
<sel id="3" ref="de">operational policy</sel>
<sel id="4" ref="association">association</sel>
<sel id="5" ref="external">external communication</sel>
</menu>
Funcion Javascript
function importXML(xmlFile)
{
if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.onload = cargarmenu;
}
else if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function () {
if (xmlDoc.readyState == 4) cargarmenu()
};
}
else
{
alert('Your browser can\'t handle this script');
return;
}
xmlDoc.load(xmlFile);
}
function cargarmenu()
{
var textomenu="";
var x = xmlDoc.getElementsByTagName('menu');
var xmlFile = xmlDoc.getElementsByTagName("menu");
for (j=0;j<x[0].childNodes.length;j++)
{
alert(x[0].childNodes.length);
textomenu+= "<a href='"+xmlDoc.getElementsByTagName("menu")[0].getElementsByTagName("sel")[j] .getAttribute("ref")+"'>";
textomenu+=xmlDoc.getElementsByTagName("menu")[0].getElementsByTagName("sel")[j] .firstChild.nodeValue + "</a>";
}
alert(textomenu);
document.getElementById("menuleft").innerHTML= textomenu;
}