Több Windows Calling onLoad Függvények Javascript
Eretnekségek másik kis peice a Javascript trükk, hogy meg kellett ásni körül, mert a helyzet commaned azt. Az egyik internetes oldalak, nem volt ez a helyzet, amikor kellett végrehajtani "windows.onload" kétszer. Az első dolog, ami jött, hogy egy tapasztalatlan szem előtt, mint az enyém (Azt kell mondani őszintén, hogy mivel én már a javascript keretrendszerek és könyvtárak, én forgotton, hogy nem egyszerű dolgokat a saját ... Szomorú, de igaz), a következő módszer ...
window.onload = onloadfn1; window.onload = onloadfn2; window.onload = onloadfn3; stb ..
Sajnálom mondani, de ez nem megy ... nem akarunk, hogy megvitassák a végrehajtási tudománya Javascript sokat ... de az én közelmúlt tapasztalatai, csak az utolsó funkció (onloadfn3) rosszul lesz ténylegesen kerül végrehajtásra.
Normális helyzetben, ellentétben az enyém (ami fogok beszélni egy kicsit később) ... akkor tegye a következőket végrehajtani mutliple onload funkciót ....
Vagy valami ehhez hasonló
doOnLoad funkció () { onloadfn1 (); onloadfn2 (); onloadfn3 (); } window.onload = doOnLoad;
Az én jelenlegi helyzet, nem tudom használni sem a fenti ...
Miért kell hívnia windows.onload kétszer, hanem hogy felhívja a két funkció egyetlen onload funkciót? Itt gyors pillantást az én problémám ... nyilatkozat
"Saját hely oldalak struktúrája, mint a WordPress téma .... vagyis van közös footer.php header.php, és hogy lesz bekerült a oldalaihoz. Van egy onload funkciót végrehajtani azokat a footer.php csinálni néhány közös funkciók onload. És van néhány oldalon, hogy kell valamit a saját onload, kivéve azokat a feladatokat a közös onload funkciót. Ha hozzá callback függvényt közvetlenül a felvezető window.onload, akkor felülírjak korábban rendelt callback a footer.php "
.... Az én problémám megértette
?
Nos! van néhány megoldás, hogy tudtam megtalálni. Mindannyian nagyon hasonlóak, és főleg implementions egy adott megoldást Simon Willison ( http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...
Megoldás:
Egyszerűen adja hozzá ezt a javascript kódot az oldal ...
addLoadEvent funkció (funkció) { var = oldonload window.onload; if (typeof window.onload! = 'funkciójú') { func = window.onload Else {} window.onload = function () { if (oldonload) { oldonload () } func () } } }És hívj, ahelyett, hogy a szokásos "windows.onload"
addLoadEvent (FunctionToRunOnPageLoad); addLoadEvent (function () { / * Több kódot futtatni az oldal betöltésénél * });
Előnye ennek a kódrészletet ...
1. Elsősorban Ez lehetővé teszi több windows.onload események hívott különálló részei a kódot anélkül, hogy a korábbi definíció overridding
2. Ez igazán feltűnő. Meg lehet helyezni egy fájlt a másik script, vagy egy külön fájlban.
3. Úgy működik, még akkor is, ha window.onload már be van állítva.










































