Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> window.onload i document.getElementById(), próba wywołania funkcji
Fanatico
post 5.05.2006, 14:56:41
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.03.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Zajec
post 5.05.2006, 17:45:12
Post #2





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


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 :-)
Go to the top of the page
+Quote Post
siemakuba
post 5.05.2006, 21:34:20
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Zajec
post 6.05.2006, 08:49:29
Post #4





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Opera i FF:
Kod
document.addEventListener('load', function () {
    init();
}, false);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.07.2025 - 05:04