01. januar 2008 - 19:37Der er
23 kommentarer og 2 løsninger
"include" noget i et div
Hej Eksperter,
Jeg har skruet et fanebladssystem sammen. Jeg vil gerne have nogle forskellige ting vist. Kan jeg med JS, om man så må sige, include noget html? Det jeg mener er hvis jeg nu har
<div id="tcontent" class="tcontent"></div>
som er det område hvor tingene skal vises, kan jeg så henvise til et sted hvor koden skal hentes
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Der findes flere måder at gøre det på - hver har sine fordele/ulempler.
Hvis det for søgemaskiner er vigtige data kunne man måske overveje flere divs og så køre show/hide imellem dem - ulempen er selvfølgelig loadetid.
Den pæne løsning hedder AJAX (se fx http://activedeveloper.dk/articles/412/) - fordelen er at du kun skal hente hvad der er nødvendigt men ulempen er fx at søgemaskiner ikke kan tolke det.
Hmm.. Jeg gennemskuer ikke lige, hvordan det kan virke, men det burde så være: ------------------------------------- if(xmlHttp.readyState==4) { document.getElementById("tcontent").innerHTML=xmlHttp.responseText; xmlHttp.open("POST","../ajax/MINSIDE.html,true); xmlHttp.send(null); } ------------------------------------- Så går vi dog helt uden om, at innerHTML ikke har noget som helst med gyldig HTML at gøre. Den virker dog i samtlige browsere.
Og læs keysersoze's kommentar på siden, som rammer plet (begge punkter, det om XML og innerHTML)..
PS: xmlHttp.readyState==4 er sandt når dataene kommer tilbage.. sommertider tester man også på om status er "200", hvilket betyder at siden er loadet korrekt (dvs, der er ikke opstået en fejl)..
Thesurfer>> Ja, det var også det jeg mente med, at jeg ikke gennemskuede det. Men det lød som om, ovenstående kode blev brugt og derfor virkede et eller andet sted. I hvert fald skal linjen: document.getElementById("tcontent").innerHTML=xmlHttp.responseText; inkluderes i readystate-if'en. =)
Der er vist noget med, at der er omkring 7 readyState koder, hvor nr 4 er "loadet færdigt".. problemet skulle være, at nogle browsere sommetider ikke opfatter nr 4 som endegyldigt svar, så man skal teste på status==200..
Men hvis der opstår en fejl på din side, vil den alligevel kunne returnere 4. Derfor bør man lige tjekke på status også, for at sikre sig, at man ikke vil hente fra en side, der kun indeholder teksten "Der er opstået en fejl" eller "Siden kunne ikke vises" o.lign.
I skal have tak for hjælpen. Jeg droppede at bruge ajax og har løst det med noget DOM
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.