Zvanot vairākus logus onLoad Funkcijas Lai Javascript
Lūk vēl maz peice Javascript blēdībām, kas man bija rakt apkārt, jo situācija commaned to. Vienā no manām tīmekļa vietnēm, man bija šo situāciju, kad man bija jāievieš "windows.onload" divreiz. Pirmā lieta, kas nāca pie nepieredzējušam prātā, piemēram raktuvēs man godīgi jāsaka, ka, jo man ir bijis, izmantojot Javascript kopumus un bibliotēkas, esmu forgotton darīt vienkāršas lietas par savu ... skumji, bet taisnība), ir šāda metode ...
window.onload = onloadfn1; window.onload = onloadfn2; window.onload = onloadfn3; utt ..
Žēl teikt, bet tas paradis strādāt ... dont gribam apspriest izpildes zinātne aktivizētam daudz ... bet saskaņā ar manu neseno pieredzi, tikai pēdējā funkcija (onloadfn3) būs slims faktiski saņemt izpildīts.
Parastos gadījumos, atšķirībā raktuvēs ko es ņemšu runāt par nedaudz vēlāk) ... jūs varētu veikt vienu no šīm darbībām, lai izpildītu mutliple onLoad funkcijas ....
Vai kaut kas līdzīgs šim
funkcija doOnLoad () { onloadfn1 (); onloadfn2 (); onloadfn3 (); } window.onload = doOnLoad;
Par manu pašreizējo situāciju, es nevaru izmantot vai nu iepriekš ...
Kāpēc man ir nepieciešams, lai izsauktu windows.onload divreiz, gan to, ka zvanot divas funkcijas vienā onLoad funkciju? Šeit ir ātrs ieskats manā Problēmas formulējums ...
"Manas vietnes lapas ir strukturēti kā WordPress tēmu .... ti tur ir kopēja Header.php un Footer.php kas izpaužas iekļauti visās lapās. Ir onLoad funkcija implementaion īpaši Footer.php darīt dažas kopējas onLoad funkcijas. Un ir dažas lapas, kas ir nepieciešams kaut ko no savas onLoad, izņemot no tiem izdarījusi kopējās onLoad funkciju. Ja es piešķirt atzvanīšanas funkciju tieši window.onload hendlera, tas būs pārāk braukt iepriekš piešķirtos atzvanus īpaši Footer.php "
.... Mana problēma saprast
?
Labi! ir maz risinājumu, kas man bija atrast. Viņi visi ir ļoti līdzīgi un galvenokārt implementions no risinājuma, ko Simon Willison panta http://simonwillison.net/2004/May/26/addLoadEvent/ ) ...
Risinājums:
Vienkārši pievienojiet šo javascript kodu vietā ...
funkcija addLoadEvent (funkciju) { var oldonload = window.onload; ja (typeof window.onload = "funkcija"!) { window.onload = funkciju } Else { window.onload = function () { ja (oldonload) { oldonload () } funkciju () } } }Un sauc to nevis parasto "windows.onload"
addLoadEvent (FunctionToRunOnPageLoad); addLoadEvent (funkcija () { / * Vairāk kods, lai palaistu uz lapas slodzei * });
Priekšrocības šo koda fragmentu ...
1. Pirmkārt, tas ļauj jums ir vairāki windows.onload notikumus, ko sauc no atsevišķas daļas ar savu kodu, bez overridding iepriekšējo definīciju
2. Tas ir patiešām kluss. To var novietot failu ar citām jūsu skriptu vai atsevišķā failā.
3. Tas darbojas pat tad, ja window.onload jau ir noteikts.










































