Autor Zpráva
Jur4
Profil
Ahoj,

mám takovýto kód:


var pole = window.location.href.split("#");
if(pole[1])
{
if(pole[1].substring(0,5) == "comm-")
{
var id = pole[1];
document.getElementById(id).className="komentar-zvyraznit";
}
}


Mněl by u divu který ma id zjištěné z adresy, změnit class na komentar-zvyraznit, ale to se neděje a konzole v Firefoxu mi hlásí

document.getElementById(id) has no properties

Promněná id je nastavená to jsem zkoušel. Nevíte čím to je?
ah01
Profil
Tipoval bych to na to, že getElementById vrací null - určitě div s daným id existuje?
peta
Profil *
Jur4
priklanim se k ah01, div s takovym ID neexistuje, asi.
hned za
if(pole[1])
bych pridal
alert (pole[1]);
a pokud tam mas mezery a podobne, tak ti tam schazi unescape, viz priklad na
jakpsatweb - javascript - priklady - precteni httpgetvars
Nebo dej odkaz na stranku.
Jur4
Profil
Div s tím ID existuje, je to na stránce blog.jur4.net.
Leo
Profil
A o jakem id a URL mluvime? .... v URL blog.jur4.net zadna mrizka jaksi neni... Leo
Chamurappi
Profil
Reaguji na Jur4:
V době, kdy ten JavaScript voláš, tam element s daným ID neexistuje.
Jur4
Profil
Jo ja to trochu spatne napsal, ten javascript volam na kuprikladu tehle url http://blog.jur4.net/24-linux-ano.html#comm-166. Mělo by se provést to, že to odskočí na ten prvek s id com-166 a jeste se tomu prvku zmneni class na komentar-zvyraznit. Normalne to odskoči, takže to znamená že prvek existuje, ale class se nezmneni. Jak uz jsem psal vrati se tohle "Chyba: document.getElementById(pole[1]) has no properties" Jinak javascript je na tehle adrese http://blog.jur4.net/funkce.js.
Chamurappi
Profil
Reaguji na Jur4:
V době, kdy ten JavaScript voláš, tam element s daným ID neexistuje. Skripty se zpracovávají okamžitě, ne až po načtení celé stránky.

Ještě pro informaci: V XHTML nemůžeš na metodu document.getElementById() spoléhat, neboť ta vyžaduje znalost informace, jaký atribut je typu ID. Informace o typech atributů jsou v externí DTD, kterou žádný normální XHTML prohlížeč nečte => bude-li to v XHTML fungovat, chová se prohlížeč v rozporu se specifikací.
peta
Profil *
Jur4
jak jsem uz psal, dej si tam alert()
pokud je ID spravne a soucasne je zobbrazene na strance, tak to udela presne, co chces.
Ale pokud se zobrazi alert a na strance se nezobrazi zadna informace. A ta se zobrazi az po odkliknuti alertu... Pak ten DIV neexistuje, tim padem je to chyba.
Z toho vypliva, ze dany script musis volat bud jako body=onload nebo az na konci stranky.
peta
Profil *
Jur4
mimo to mi JS konzola hlasi 8 chyb a validator 50

Chyba: document.getElementById(pole[1]) has no properties
Zdrojový soubor: http://blog.jur4.net/funkce.js
Řádek: 106
Chyba: Neznámá vlastnost '_height'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 417
Chyba: Chyba při parsování hodnoty vlastnosti 'padding-bottom'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 417
Chyba: Chyba při parsování hodnoty vlastnosti 'cursor'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 361
Chyba: Neznámá vlastnost '_height'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 212
Chyba: Neznámá vlastnost '_margin-left'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 149
Chyba: Neznámá vlastnost '_margin-left'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 93
Chyba: Neznámá vlastnost '_overflow-x'. Deklarace vynechána.
Zdrojový soubor: http://blog.jur4.net/vzhled/fresh-style/css/web-fresh-style.css
Řádek: 47

kde radek 417 padding, 361 cursor - mas uplne chybne zapsane
a ostatni CSS veci se daji resit pres
* div.neco {height}
(s hvezdickou si uvazuje ie, ale take pouzivam podtrzitka)
Chamurappi
Profil
Reaguji na petu:
mimo to mi JS konzola hlasi 8 chyb a validator 50
Validátor hlásí chyby dvě, navíc zcela neškodné.

* div.neco {height} (s hvezdickou si uvazuje ie, ale take pouzivam podtrzitka)
Omyl. Uvedený selektor použijí takřka všechny CSS-schopné prohlížeče.
Leo
Profil
No myslim, ze vam uz Chamurappi odpovedel:

"V době, kdy ten JavaScript voláš, tam element s daným ID neexistuje."

Kouknete se kdy volate ten JS a kde mate v HTML ten element s id.

Leo
Jur4
Profil
Web validaci jeste neprosel, nejdrive potrebuju zajistit aby to fungovalo, a u toho js uz asi chapu. Jestli je to spravne tak ten element tam jeste neni kdyz se nacte ten javascript, a proto se neprovede to co ma. Zkusim jestli jsem na omylu, tak napisteprosim, děkuji.
Leo
Profil
"Zkusim jestli jsem na omylu, tak napisteprosim, děkuji."

Pokud to opravdu zkusite, tak to sam i zjistite :-) Leo
Jur4
Profil
Bylo to tak už mi funguje, děkuji všem za ochotu.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0