Spustenie niekoľkých funkcií v režime onload. Spustenie niekoľkých funkcií pri onload Ako zavolať funkciu načítania stránky



stlačením tlačidla pri načítavaní stránky (4)

Chcem spustiť funkciu pri načítaní stránky, ale nechcem ju používať v .

Mám skript, ktorý sa spustí, ak ho inicializujem v , napríklad:

Kód funkcieAdresa() ( // kód )

Ale chcem to spustiť bez a vyskúšal som veľa vecí, napríklad:

Window.onload = codeAddress;

Ale to nejde.

Ako to teda spustím pri načítaní stránky?

window.onload = function() ( ... atď. nie je skvelá odpoveď.

Pravdepodobne to bude fungovať, ale naruší to aj všetky ostatné funkcie, ktoré sú už zapojené do tejto udalosti. Alebo ak iná funkcia zachytí túto udalosť po vašej, pokazí sa. Takže môžete stráviť mnoho hodín neskôr snahou zistiť, prečo niečo, čo funguje, už neexistuje.

Spoľahlivejšia odpoveď tu:

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

Použil som nejaký kód, zabudol som, kde som ho našiel, aby som uviedol autora.

Funkcia my_function() ( // akýkoľvek kód, ktorý chcem spustiť po načítaní stránky ) if (window.attachEvent) (window.attachEvent("onload", moja_funkcia);) else if (window.addEventListener) (window.addEventListener("load ", my_function, false);) else (document.addEventListener("load", my_function, false);)

Dúfam, že to pomôže :)

Namiesto používania jQuery alebo window.onload si natívny JavaScript od vydania jQuery osvojil niekoľko skvelých funkcií. Všetky moderné prehliadače majú teraz svoju vlastnú funkciu DOM ready bez použitia knižnice jQuery.

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

window.onload = codeAddress; by mal fungovať - ​​a celý kód je:

Testovacia funkcia codeAddress() ( alert("ok"); ) window.onload = codeAddress;

Testovacia funkcia codeAddress() ( alert("ok"); )

Pozrite sa na skript domReady, ktorý vám umožňuje nakonfigurovať spustenie niekoľkých funkcií pri načítaní modelu DOM. Toto je v podstate to, čo je Dom pripravený urobiť v mnohých populárnych knižniciach JavaScript, ale je ľahký a možno ho prijať a pridať na začiatok vášho externého súboru skriptu.

Príklad použitia

// pridajte odkaz na skript domReady alebo umiestnite // obsah skriptu pred sem funkcia codeAddress() ( ) domReady(codeAddress);

Ak už viac-menej poznáte JavaScript, pravdepodobne ste už počuli o obslužnom programe udalosti Load, ktorý sa nazýva onload. Táto udalosť sa spustí priamo pri načítaní stránky. A veľmi často sa pri načítaní stránky musí vykonať nejaká funkcia. Čo ak však potrebujete spustiť viacero funkcií JavaScriptu? V skutočnosti túto otázku položil jeden z používateľov na stránke. Preto v tomto článku napíšem o spustení niekoľkých funkcií v onload.

Riešenie je naozaj triviálne, stačí spustiť funkciu, v ktorej sa spustia všetky potrebné ďalšie funkcie:



funkcia a() (
b()
c();
}
funkcia b() (
alert("Funkcia b() spustená");
}
funkcia c() (
alert("Funkcia c() spustená");
}



Ak otvoríte túto stránku (nie sú tam žiadne také dôležité veci ako html tag alebo napríklad názov a kódovanie stránky, aby sa zjednodušilo pochopenie kódu), uvidíte, ako b() a c () funkcie fungujú pri načítaní stránky.

Dnes chcem hovoriť o jednom probléme, ktorý sa často objavuje medzi ľuďmi, ktorí sa začínajú učiť Javascript.

Snažia sa interagovať s prvkami HTML na stránke, ktoré sú v kóde nižšie ako samotný skript. V súlade s tým je skript už načítaný, ale prvok, s ktorým budete musieť interagovať, ešte nie. Z tohto dôvodu nebude nič fungovať.

Zvláštnosťou jazyka Javascript je, že jeho kód sa spúšťa postupne, riadok po riadku, ako sú napísané v zdrojovom kóde.

Tu je príklad:

Dokument bez názvu

css pravidlo (background-color:yellow) sa nepoužije na prvok s id #block, pretože riadok

$("#blok").css("farba-pozadia", "zlta");

Vykoná sa pred načítaním riadku html:

Čo ak potrebujeme spustiť kód alebo funkciu až po úplnom načítaní celého dokumentu?

Chcem hovoriť o troch spôsoboch, ako to môžete urobiť.

1 spôsob. Pomocou knižnice Jquery.

Najčastejšie to používam sám, je to najjednoduchšie a najpohodlnejšie riešenie, ale vyžaduje pripojenie knižnice Jquery.

Tu je návod, ako bude predchádzajúci kód transformovaný, ak použijeme nasledujúcu metódu.

#block (width:100px; height:100px; border:1px solid #ccc;) $(document).ready (function())( $("#block").css("background-color", "yellow" ) )); Dokument bez názvu

Metóda 2. Použitie prvku body a atribútu onload.

#block (width:100px; height:100px; border:1px solid #ccc;) function funonload() ( $("#block").css("background-color", "yellow"); ) Dokument bez názvu

3 spôsob. Použitie objektu okna a jeho vlastnosti onload.

#block (width:100px; height:100px; border:1px solid #ccc;) function funonload() ( $("#block").css("background-color", "yellow"); ) window.onload = funonload; Dokument bez názvu

Vyberte si metódu, ktorá najlepšie vyhovuje vašej situácii a zaveďte ju do praxe.



 

Môže byť užitočné prečítať si: