Når jeg debugger dit JS får jeg en fejl som den du beskriver, men jeg får den på linje 53, linjen hvor du kalder "removeChild". For at løse problemet ændrede jeg navnet på din "content" i hoved-HTMLen til "container", blot for at have noget at ligge data i, og så ændrede jeg Javascriptets linje 53 og 54 til:
document.getElementById('container').innerHTML = ''; document.getElementById('container').appendChild(document.importNode(xmlhttp.responseXML.documentElement, true));
Dette fjerner indholdet korrekt, og sætter herefter indholdet ind i container-elementet.
Jeg ved så ikke om der er tale om en bug eller ej, men jeg fik et problem at getElementById ikke kunne finde objekter inde i det importerede XML. Jeg løste dog problemet ved flg. lille kode(til at sætte titel på siden):
var nodes = document.getElementsByTagName("h1");
for(var i = 0; i < nodes.length; i++)
{
if(nodes[i].attributes.getNamedItem("id") != undefined && nodes[i].attributes.getNamedItem("id").value == 'title')
{
document.title='redsplat - ' + nodes[i].textContent;
}
}
Og det samlede callback bliver så:
if(xmlhttp.readyState==4) {
document.getElementById('container').innerHTML = '';
document.getElementById('container').appendChild(document.importNode(xmlhttp.responseXML.documentElement, true));
fade = setInterval(fadeIn,20);
var nodes = document.getElementsByTagName("h1");
for(var i = 0; i < nodes.length; i++)
{
if(nodes[i].attributes.getNamedItem("id") != undefined && nodes[i].attributes.getNamedItem("id").value == 'title')
{
document.title='redsplat - ' + nodes[i].textContent;
}
}
document.body.style.cursor='default';
}