Autor Zpráva
jan99
Profil *
Ahoj, pokud mam javascript a z toho javascriptu volam pres document.getElementById nejaky element tak to funguje jen kdyz se ten element nachazi nad tim javascriptem, tzn pokud ho soupnu az dole za javascript uz to nefunguje a firebug hlasi "element is null".

Jak to udelat aby to fungovalo ve vsech pripadech?? Diky
Someone
Profil
Nó.. akce můžeš zabalit do nějaké funkce:
function funkce() {
var neco = document.getElementById('id');
}
a tuto funkci volat přes body událost onload:
<body onload="funkce()">
Nejsem tak zběhlý v JavaScriptu, tak mě prosím omluv pokud by to byla blbost.
Sir Tom
Profil
jan99:
Také ahoj,

no protože prohlížeč vykreslí stránku po řádcích - odshora dolů.

Pokud tedy nahoře ve zdrojáku bude script s tím document.getElementById("neco") tak v době, kdy prohlížeč dojde na tento řádek, tak žádný element s id = "neco" ještě nebyl vypsán (neexistuje = element is null). Proto je dobré nejdřív vykreslit všechny elementy a pak s nimi pracovat přes JS.

Vhodné je řešení od Someone, ale to nemusí být vždy žádané. Já to dělám tak, že všechny změny, které proběhnou díky JS jsou ve funkcích v externím souboru. Vyjímečně pak až úplně na konci zdrojáku.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: