köra kod när sidan är redo Omdömen
Om du försöker att köra JavaScript-kod som manipulerar vissa element i webbsidan, utan att se till att om elementen laddas helt kommer att resultera i oväntade resultat. Till exempel finns det en P-element vars ID är "highlight" vid inläsning den sida du vill använda en bakgrundsfärg på elementet. I en typisk lösning med hjälp av generiska JavaScript du skulle gå för något som följande:
var highlightDiv = document.getElementById ("highlight"), om (typeof highlightDiv === "objekt") {highlightDiv.style.background = "yellow"; highlightDiv.style.color = "blue"; highlightDiv.style.border = "1px solid röd";}
I ovanstående kod vi har tillämpat en bakgrundsfärg, en 1px gränsen i röd färg och gjorde font color blå. Observera att vi inte behöver göra det så här i stället kan vi skapa en klass med en bakgrundsfärg gul, 1px gränsen i rött och färg i blått och helt enkelt använda klassen. Men jag vill bara visa den grad att jag talar om. Omdömen
Antag att du utför ovanstående kodsnutt innan element läses in i webbläsaren.
Som du har tänkt den här koden inte fungerar som förväntat och hoppa över utförandet som krävs. Den gemensamma strategin är att du placera koden efter div-elementet som det kommer att utföra operationen.
En annan vanligaste IE utfärdandet till IE8 var "Åtgärden avbröts" fel. I detta fel ett underordnat element försöker uppdatera sin förälder innan det överordnade elementet laddar sig fullständigt i DOM. Till exempel skriptet försöker infoga ett nytt element in i stomelementet innan kroppsbelastningar i DOM helt.
Omdömen
Det här är den plats där onload-händelse i fönstret objektet kommer praktiskt. Låt oss undersöka en bit exempelkod:
window.onload = function () {var d = document.createElement ("div"); d = "testdata"; document.body.appendChild (d);}Ovanstående kod är perfekt och kommer att genomföras efter DOM Laddar klar. Allt är bra? Omdömen
Nej det finns fortfarande vissa problem i detta synsätt
Om det finns något annat fönster onload händelsehanterare som sista åsidosätter alla de andra.