Autor | Zpráva | ||
---|---|---|---|
exoslav Profil |
#1 · Zasláno: 12. 4. 2013, 13:06:29 · Upravil/a: exoslav
Čau,
mám tento kód: var id = document.getElementById("moje_id"); document.write(id.nodeName); <a id="moje_id">Ahoj</a> ale nedaří se mi vypsat uzel. Nevíte, čím to je? Vypíše se mi následující chyba: Uncaught TypeError: Cannot read property 'nodeName' of null Hmm, tak problém vyřešen jen na půl. Jde o to, že se mi javascript načítá dříve než dokument HTML. Tudíž to nenajde žádný prvek v DOM a vrátí hodnotu null (pokud tedy nepřesunu script z externího souboru a nedám ho na konec dokumentu, potom to funguje)... Kdyby mohl někdo poradit, jak vyřešit tento problém, bych bych rád. Děkuji. |
||
Chamurappi Profil |
#2 · Zasláno: 12. 4. 2013, 13:24:13
Reaguji na exoslava:
Dej skript na konec dokumentu. Dávat skripty do hlavičky je nepraktické. „pokud tedy nepřesunu script z externího souboru a nedám ho na konec dokumentu“ K tomu, aby byl na konci, přeci nemusí být interní. |
||
exoslav Profil |
#3 · Zasláno: 12. 4. 2013, 13:28:06
Takže umístím odkaz na externí JS na konec dokumentu? Nevím, jestli se to může takhle udělat, ale funguje to. Díky za pomoc ;-)
|
||
peta Profil |
#4 · Zasláno: 12. 4. 2013, 13:42:07
exoslav: Je to lepsi, predejdes spouste problemu.
V opacnem pripade bys to musel obalit do funkce a priradit do window.onload. Coz je desne neprakticke a hlavne se pak chodi spousta lidi ptat, co s tim, kdyz spoujuji 2 scripty, ktere oba prepisuji window.onload a funguje jen ten posledni. Kdyz to das na konec a nepouzijes window.onload, tak takovy problem resit nemusis u svych scriptu. |
||
pcmanik Profil |
#5 · Zasláno: 12. 4. 2013, 15:41:37
peta:
Máme tu aj DOMContentLoaded. Bohužial podpora až od IE9, takže tam treba využiť fallback. |
||
Chamurappi Profil |
#6 · Zasláno: 12. 4. 2013, 16:05:32
Reaguji na exoslava:
„Nevím, jestli se to může takhle udělat“ Může. Vždy mohlo. A bývá to i lepší, protože externí skripty brzdí načítání. Reaguji na pcmanika: Čekat na jakoukoliv událost je zbytečné, pokud jde pozice skriptu ovlivnit. „takže tam treba využiť fallback“ … konkrétně by to byl atribut defer na <script> u.
|
||
Časová prodleva: 11 let
|
0