Allora sto facendo un sito che contiene questa piccola funzione
che su firefox va ma su IE no. Io prendo il file xml da questa funzione:codice:function leggiContenuto(a, nomeNodo,posizione) { return a.getElementsByTagName(nomeNodo).item(posizione).firstChild.nodeValue; }
Che è una normalissima richiesta AJAX che poi va a leggere il contenuto di ciò che gli serve. Il bello è che se invece della richiesta ajax ci vado a mettere una lettura normale con load:codice:function scriviHeader(el,xmlDoc) { var xml,x,txt; var dXML,opz; var objHTTP = XMLHttp(); if(objHTTP) { try{ objHTTP.open("GET", xmlDoc, true); // rimozione dell'header "connection" come "keep alive" objHTTP.setRequestHeader("connection", "close"); objHTTP.onreadystatechange = function() { if(objHTTP.readyState === 4) { if(objHTTP.status == 200 || objHTTP.status == 0) { //var elemento = xmlDoc.getElement // verifica della validità dell'XML restituito dal server if(objHTTP.responseXML) { var dXML,opz; dXML = objHTTP.responseXML; opz = cercaContenuto(objHTTP.responseXML, "opzione"); var result = "<ul>"; for(var a = 0, b = opz.length; a < b; a++) { result += "[*]<a href=\""; result += leggiContenuto(dXML, "eventoAssociato", a); result += "\" >" + leggiContenuto(dXML, "nomeOpzione", a); result += "<span>" + leggiContenuto(dXML, "descrizione", a); result += "</span></a>"; } result += "[/list] "; result += "</h1>"; el.innerHTML = result; } else { alert("Errore!"); } } else { alert("Operazione fallita, errore numero " + objHTTP.status); } } } // invio richiesta objHTTP.send(null); }catch(err){alert(err.message);} } }
in questo caso non mi da problemi ma a questo punto sorge spontanea una domanda...la richiesta AJAX e la lettura con load restituiscono oggetti diversi? OK che una viene fatta con XMLHttpRequest() e l'altra con ActiveXObject("MSXML2.XMLHTTP") o con ActiveXObject("Microsoft.XMLHTTP") ma non dovrebbe essere possibile leggerle tutte e due con lo stesso metodocodice:function scriviHeader(el,xmlDoc) { var xml,x,txt; var dXML,opz; dXML = loadXMLDoc(xmlDoc); opz = cercaContenuto(dXML, "opzione"); var result = "<ul>"; for(var a = 0, b = opz.length; a < b; a++) { result += "[*]<a href=\""; result += leggiContenuto(dXML, "eventoAssociato", a); result += "\" >" + leggiContenuto(dXML, "nomeOpzione", a); result += "<span>" + leggiContenuto(dXML, "descrizione", a); result += "</span></a>"; } result += "[/list] "; result += "</h1>"; el.innerHTML = result; }
c'è qualche metodo di lettura diverso con ActiveX.codice:a.getElementsByTagName(nomeNodo).item(posizione).firstChild.nodeValue oppure a.getElementsByTagName(nomeNodo)[posizione].firstChild.nodeValue
Scusate per il post lungo...

Rispondi quotando