Kör funktionen när sidan laddas. Kör flera funktioner i onload




trycka på knappen när sidan laddas (4)

Jag vill köra en funktion när sidan laddas, men jag vill inte använda den i .

Jag har ett skript som körs om jag initierar det i , till exempel:

Funktion codeAddress() ( // code )

Men jag vill köra den utan och jag har provat många saker, till exempel:

Window.onload = codeAddress;

Men det går inte.

Så hur utlöser jag det vid sidladdning?

window.onload = function() ( ... etc. är inte ett bra svar.

Detta kommer förmodligen att fungera, men det kommer också att bryta alla andra funktioner som redan är kopplade till denna händelse. Eller om en annan funktion fångar denna händelse efter din, kommer den att gå sönder. Så du kan spendera många timmar senare på att försöka ta reda på varför något som fungerar inte längre existerar.

Ett mer tillförlitligt svar här:

If(window.attachEvent) ( window.attachEvent("onload", dittFunktionsnamn); ) else ( if(window.onload) ( var curronload = window.onload; var newonload = function(evt) ( curronload(evt); yourFunctionName( evt); window.onload = newonload; else(window.onload = yourFunctionName; ))

Någon kod jag använde, jag glömde var jag hittade den för att ge författaren kredit.

Funktion my_function() ( // vilken kod jag än vill köra efter sidladdning) if (window.attachEvent) (window.attachEvent("onload", min_function);) else if (window.addEventListener) (window.addEventListener("load ", my_function, false);) else (document.addEventListener("load", my_function, false);)

Hoppas det här hjälper :)

Istället för att använda jQuery eller window.onload, inbyggt JavaScript har antagit några fantastiska funktioner sedan jQuery släpptes. Alla har moderna webbläsare Nu finns det en inbyggd DOM-klar funktion utan att använda jQuery-biblioteket.

Document.addEventListener("DOMContentLoaded", function() ( alert("Ready!"); ), false);

window.onload = codeAddress; borde fungera - och hela koden är:

Testa funktionen codeAddress() ( alert("ok"); ) window.onload = codeAddress;

Testa funktion codeAddress() ( alert("ok"); )

Ta en titt på domReady-skriptet, som låter dig konfigurera flera funktioner för att köras när DOM laddas. Detta är i princip vad Dom är redo att göra i många populära JavaScript-bibliotek, men är lätt och kan användas och läggas till i början av din extern fil manus.

Användningsexempel

// lägg till referens till domReady-skriptet eller placera // innehållet i skriptet före här funktion codeAddress() ( ) domReady(codeAddress);

Idag vill jag prata om ett problem som ofta uppstår bland människor som börjar lära sig Javascript.

De försöker interagera med HTML-element på sidan som är lägre i koden än själva skriptet. Följaktligen har skriptet redan laddats, men elementet som du kommer att behöva interagera med har inte ännu. Av denna anledning kommer ingenting att fungera.

Egenhet Javascript-språkär att dess kod exekveras sekventiellt, rad för rad, som de skrivs i källkoden.

Här är ett exempel:

namnlöst dokument

Elementet med id #block kommer inte att tillämpas css regel(bakgrundsfärg: gul), eftersom linje

$("#block").css("bakgrundsfärg", "gul");

Kommer att köras innan html-raden laddas:

Vad händer om vi behöver exekvera kod eller funktion först efter att hela dokumentet har laddats helt?

Jag vill prata om tre sätt du kan göra detta på.

1 sätt. Använder sig av Jquery bibliotek.

Oftast använder jag det själv, det är det enklaste och bekväm lösning, men kräver att Jquery-biblioteket ansluts.

Så här kommer den tidigare koden att omvandlas om vi använder följande metod.

#block (width:100px; height:100px; border:1px solid #ccc;) $(document).ready (function())( $("#block").css("bakgrundsfärg", "gul" ) ; )); namnlöst dokument

Metod 2. Använda body-elementet och onload-attributet.

#block (bredd:100px; höjd:100px; kant:1px fast #ccc;) funktion funonload() ( $("#block").css("bakgrundsfärg", "gul"); ) Namnlöst dokument

3 sätt. Använda fönsterobjektet och dess onload-egenskap.

#block (bredd:100px; höjd:100px; kant:1px fast #ccc;) funktion funonload() ( $("#block").css("bakgrundsfärg", "gul"); ) window.onload = funonload; namnlöst dokument

Välj den metod som passar din situation bäst och använd den i praktiken.

Om du redan kan JavaScript mer eller mindre, så har du förmodligen hört talas om Load-händelsehanteraren, som kallas onload. Den här tillställningen avfyras direkt när sidan laddas. Och väldigt ofta, när sidan laddas, måste någon funktion utföras. Men tänk om du behöver köra flera JavaScript-funktioner? Den här frågan ställdes faktiskt av en av användarna på sajten. Därför kommer jag att skriva om att lansera flera funktioner i onload i den här artikeln.

Lösningen är verkligen trivial, kör bara en funktion där alla nödvändiga andra funktioner lanseras:



funktion a() (
b()
c();
}
funktion b() (
alert("Funktion b() startade");
}
funktion c() (
alert("Funktion c() startade");
}



Om du öppnar denna sida(det finns inga sådana viktiga saker som html-tagg eller till exempel sidans titel och kodning, för att förenkla förståelsen av koden), ser du hur b()- och c()-funktionerna fungerar när sidan laddas.







2024 gtavrl.ru.