Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: window.onload i document.getElementById()
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Fanatico
Witam
Mam pewien problem z funkcją. Chcę ją wywołać za każdym razem gdy odpalana jest strona. Nie mogę zrobić <body onload="funkcja">, a więc zostaje mi window.onload w pliku ze skryptami

i tak:

Kod
function init(){
            //alert("jestem tu");
            if(document.getElementById("kierowca"))
             {
  document.getElementById("kierowca").focus();
             }
            if(document.getElementById("auto"))
             {
  document.getElementById("auto").focus();
             }
}

window.onload=init();


  1. <!--pomijam zbędny kod-->
  2. <form id="kierowcy_voucher" >
  3. <input id="kierowca" name="wn0_id_kierowcy" type="text">
  4. </form>


i tu pojawia się problem, zawsze działało tak:
window.onload=init;
a teraz musi być tak:
window.onload=init();
od ostatnigo razu zmieniło się jedynie to, że zrobiłem update Mozilla Firefox do 1.5.0.3
następnie
nie robi focusa na pola. If-y w funkcji są potrzebne, ponieważ na różnych stronach ma robić focusy do różnych pól.
Zajec
Cytat(Fanatico @ 2006-05-05 14:56:41)
i tu pojawia się problem, zawsze działało tak:
window.onload=init;
a teraz musi być tak:
window.onload=init();
od ostatnigo razu zmieniło się jedynie to, że zrobiłem update Mozilla Firefox do 1.5.0.3

Widocznie nowszy FF wymaga poprawniejszego kodu. Super :-)
siemakuba
1. http://www.mozilla.com/firefox/releases/1.5.0.3.html mówi, że FF 1.5.0.3 to security update, więc nie podejrzewam, ze cos zmienilo sie w interpretacji JS.

2. window.onload=init(); - takie wywolanie IMHO nie da ci tego co zamierzasz. Nie przypisze funckji init() do zdarzenia onload. Przypisze wynik wykonania funkcji, bo przez dodanie () fukncja jest wywolywana. To prawdopodobnie rodzi problem z brakiem focusa na konkretny input. window.onload = init() masz wczesniej niz formularz, co? focus sie nie robi, bo w drzewie DOM w momencie wywolania fukcji nie masz jeszcze elementow ktorych istnienie sprawszasz w if(document.getElementById).

3. zamiast uzywac window.onload lepiej chyba skorzystac z window.attachEvent (dla IE) lub window.addEventListener (dla FF, i chyba Opera)

pozdr.
Zajec
Opera i FF:
Kod
document.addEventListener('load', function () {
    init();
}, false);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.