Hola a todos.
Soy un webmaster aficionado, y estoy iniciándome en el Ajax tras la reforma de una web que mantengo yo. He creado dos pequeñas bases de datos en XML y de momento accedo a ellas con:
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
Pero claro, esto sólo funciona en IE, así que me decidí a probar el HTTPRequest. He conseguido que me lea los datos en IE y Mozilla, pero en ningún navegador me muestra bien la información en pantalla. En ambos me desaparece todo o parte del código HTML, y o bien me aparece pantalla sólo lo que envía el JavaScript con "document.write", o bien sale mal la información en pantalla porque se come algún "div", por ejemplo. Este es el código de marras:
var isIE = false;
var req;
function loadXMLDoc(url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
// handle onreadystatechange event of req object
function processReqChange() {
// only if req shows "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
Proces();
} else {
alert("Problema llegint les notícies:\n" +
req.statusText);
}
}
}
function Proces() {
var xmlDoc = req.responseXML;
var Noticies = xmlDoc.getElementsByTagName("NOTICIA");
if(id==0) { //Titulars
ExActual = "";
for(var i=0;i<Noticies.length;i++) {
var Noticia = Noticies[i];
var idNoticia = Noticia.getAttribute("ID");
var Data = Noticia.getElementsByTagName(itData)[0].firstChild.nodeValue;
var ExData = Exercici(Data);
var Titular = Noticia.getElementsByTagName(itTitular)[0].firstChild.nodeValue;
if(ExActual!=ExData) {
document.write('<h3 class="feature">'+msgTitulars+ExData+'</h3>');
}
ExActual = ExData;
document.write('<p class="feature">· <strong><a href="noticies'+ftxNoticies+'.html?id=' + idNoticia+'">' + Titular + '</a></strong><span class="datanot"> ['+Data+']</span></p>');
}
La dirección de la página (de prueba, claro) es:
club.telepolis.com/fallajmh/llibret/noticies9.html
Si alguien me pudiera decir qué pasa, se lo agradecería enormemente.
Saludos.
Tolkaia