Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 12063 razy

Skrypty JavaScript mają pewien problem, a mianowicie taki, że bardzo często potrzebują one dostępu do załadowanych elementów strony. Problem polega na tym, że jeżeli twój skrypt został umieszczony przed elementami strony, do których ma się odwoływać to skrypt najzwyczajniej w świecie nie zadziała. Ktoś może powiedzieć, to dobrze, umieścić wystarczy skrypt na końcu dokumentu i po sprawie. No, niestety nie do końca, bo sama struktura dokumentu często się ładuje bardzo szybko, natomiast na grafikę to trzeba jeszcze sobie poczekać. Co więc zrobić, aby mieć dostęp do wszystkiego? I tu właśnie z odsieczą przychodzi window.onload, któremu można przypisać bezparametrową funkcję do wywołania po załadowaniu struktury dokumentu i wszystkich jej elementów.

window.onload = function(){alert("Załadowała się strona");}

No dobrze, wszystko ładnie i pięknie ale co jeżeli mam dużą stronę, na której pewien skrypt jest zawsze uruchamiany, natomiast na niektórych podstronach są uruchamiane czasami indywidualne skrypty, które również muszą zostać odpowiednio zainicjalizowane. Tutaj z odsieczą może przyjść globalna tablica funkcji, które w odpowiednio napisanej funkcji będą wywoływane. Oto przykład:

var arrayOnLoad = new Array(); arrayOnLoad.push( function(){alert("Pierwsza funkcja do uruchomienia po załadowaniu strony");} ); arrayOnLoad.push( function(){alert("Druga funkcja do uruchomienia po załadowaniu strony");} ); window.onload = function(){ for(var i = 0; i < arrayOnLoad.length; i++){ arrayOnLoad[i](); // wywoływanie kolejnych funkcji, które zostały dodane do tablicy arrayOnLoad } }