Позивање више прозора онЛоад функција у Јавасцрипт
Херес још мало пеице ЈаваСцрипт-трикова да сам морао да копају око, јер ситуација је цомманед. У једном од мојих сајтова, имао сам ову ситуацију где сам два пута морао да спроведу "виндовс.онлоад". Прва ствар да би дошао до неискусног ума као што је мој (морам искрено рећи да, пошто сам био користећи ЈаваСцрипт оквире и библиотекама, ја сам форготтон да једноставне ствари на своју руку ... тужно али истинито), је следећа метода ...
виндов.онлоад = онлоадфн1; виндов.онлоад = онлоадфн2; виндов.онлоад = онлоадфн3; итд ..
Жао нам је рећи, али то неће радити ... донт желе да разговарају о науку извршење искључили Јавасцрипт много ... али у складу са мог недавног искуства, само последња функција (онлоадфн3) ће лоше ствари се извршава.
У нормалним ситуацијама, за разлику од рудника (који ћу говорити о томе мало касније) ... могли сте да урадите неку од следећих радњи да изврши мутлипле онЛоад функције ....
Или нешто овако
доОнЛоад функција () { онлоадфн1 (); онлоадфн2 (); онлоадфн3 (); } виндов.онлоад = доОнЛоад;
За моју тренутну ситуацију, ја не могу да користе од горе ...
Зашто морам да позовем виндовс.онлоад два пута, а да позивање две функције у оквиру једне онЛоад функцији? Овде је брз поглед на мој проблем изјави ...
"Моји Сите странице су структуиране као УордПресс Тема .... тј постоји заједнички Хеадер.пхп и Фоотер.пхп која бива укључена у све сајта страницама. Постоји онЛоад функција имплементаион у Фоотер.пхп да урадите неке заједничке функције онЛоад. И постоји неколико страница које треба да нешто сопственог онЛоад, осим оних који су радили на заједничком онЛоад функцији. Ако сам доделите повратни функцију директно на виндов.онлоад руковалац, она ће преко-вози претходно додељене повратних позива у Фоотер.пхп "
.... Да ли је мој проблем схватио ?
Добро! постоји неколико решења која сам нашли. Сви они су веома слични и углавном имплементионс од решења које је добио од Симона Виллисон ( хттп://симонвиллисон.нет/2004/Маи/26/аддЛоадЕвент/ ) ...
Решење:
Једноставно додајте овај јавасцрипт код на сајт ...
Функција аддЛоадЕвент (фунц) { вар = олдонлоад виндов.онлоад; ако (типеоф виндов.онлоад = 'функција') { виндов.онлоад = функ Елсе {} виндов.онлоад = фунцтион () { ако (олдонлоад) { олдонлоад () } фунц () } } }И назовите га уместо уобичајеног "виндовс.онлоад"
аддЛоадЕвент (ФунцтионТоРунОнПагеЛоад); аддЛоадЕвент (фунцтион () { / * Више кода * на Паге Лоад });
Предности овог фрагмент кода ...
1. Пре свега, то вам омогућава да имате више виндовс.онлоад догађаја, позвао из одвојених делова вашег кода, без оверриддинг претходну дефиницију
2. То је заиста ненаметљив. Може се сместити у датотеку са другим скрипти или у посебном фајлу.
3. Он ради чак и ако виндов.онлоад је већ постављена.










































