Kjører kode når siden er klar
Hvis du prøver å kjøre Javascript-kode som manipulerer enkelte elementer i web-siden uten å være sikker på at om elementene er lastet helt vil resultere i uventede utfall. For eksempel er det en P element som ID er "høydepunkt", mens lasting av siden du ønsker å bruke en bakgrunnsfarge på elementet. I en typisk løsning ved hjelp av generiske Javascript vil du gå for noe sånt som følgende:
Var highlightDiv = document.getElementById ("høydepunkt"); if (typeof highlightDiv === "objekt") {highlightDiv.style.bakgrunnsfarge = "gul"; highlightDiv.style.color = "blue"; highlightDiv.style.border = "1px solid rød";}
I koden ovenfor har vi brukt en bakgrunnsfarge, en 1px grensen i rød farge og gjort skriftfarge blå. Vær oppmerksom på at vi ikke trenger å gjøre dette som dette i stedet vi kan lage en klasse med bakgrunn gul farge, 1px grensen i rødt og farge i blått og bare bruke klassen. Men jeg vil bare demonstrere det punktet at jeg snakker om.
Anta at du utfører ovennevnte stykke kode før element belastninger i nettleseren.
Som du har tenkt denne koden vil ikke fungere som forventet og hoppe over den nødvendige utlegg. Den vanlige tilnærmingen er du plassere koden etter div element som det kommer til å utføre operasjonen.
En annen vanligste IE problemet før IE8 var "Operation aborterte" feil. I denne feilen et barn element forsøker å oppdatere sin overordnede før den overordnede element laster seg helt i DOM. For eksempel skriptet forsøker å sette inn et nytt element inn i kroppen element før kroppen laster i DOM helt.
Dette er stedet hvor onload tilfelle av vinduet objektet kommer hendig.
Lar undersøke et stykke eksempelkode:
window.onload = function () {var d = document.createElement ("div"); d = "Test Data"; document.body.appendChild (d);}Koden ovenfor er perfekt, og vil bli utført etter at DOM Loading fullført. Alt er i orden?
Nei det er fortsatt noen problemer i denne tilnærmingen