Autor | Zpráva | ||
---|---|---|---|
CASO Profil * |
#1 · Zasláno: 30. 12. 2007, 21:24:49
chcem sa opytat, vlastne este viac menej zacinam no a jedna vec by sa mi hodila len neviem ako na to,... potrebujem vykonat javascriptovu funkciu bez toho aby ju vykonavala nejaka udalost,.. priklad:
. //nejaky php kod, urcujuci ci $riadok_exists je TRUE . if($riadok_exists) { ?> <body onLoad="nevidene('prvok')"> <? } else { ?> <body> <? } ?> --> funkcia nevidene(id) sa vykona podla toho ifu,... a ako vidite vykona sa v podstate cez udalost onLoad ale ja by som chcel toto (spodny skript), aby to nebolo take komplikovane ako som to urobil hore, sice mi to funguje ale chcel by som vediet ci sa daj funkcia js vykonat bez udalosti a ako? . //nejaky php kod, urcujuci ci $riadok_exists je TRUE . if($riadok_exists) { ?> <script> nevidene('prvok'); </script> <? } ?> <body> . //atd takto to nefunguje . |
||
Joker Profil |
#2 · Zasláno: 30. 12. 2007, 21:30:28
CASO
potrebujem vykonat javascriptovu funkciu bez toho aby ju vykonavala nejaka udalost Javascriptovou funkci jde volat i normálně z kódu stránky, příklad: (...) <body> <p>nějaký text</p> <script type="text/javascript">funkce();</script> (...) V takovém případě se funkce zavolá při načítání stránky. |
||
CASO Profil * |
#3 · Zasláno: 30. 12. 2007, 21:46:23
Joker:
ta funkcia vyssie co som pouzil je tato: function nevidene(id) { document.getElementById(id).style.visibility="hidden"; } //blabla <body> <script> nevidene('prvok'); <script> . //blabla . </body> -> tak to je v praxi to co si napisal, ibaze mne to nefunguje |
||
Joker Profil |
#4 · Zasláno: 30. 12. 2007, 22:05:17
CASO
mne to nefunguje Asi to bude rozbitý, aneb není nad detailní popis. Jestli ale on problém nebude třeba v tom, že se snažíte pracovat s neexistujícím prvkem? Protože pokud tam skutečně je: <body> <script> nevidene('prvok'); <script> tak těžko může někde předtím být prvek s id="prvok" |
||
peta Profil |
#5 · Zasláno: 31. 12. 2007, 07:51:39
CASO
www prohlizec - JS konzola (nastroje - chybova konzola / zluty vykricnik v IE) Co to pise za chybu? Bez toho se nikam nedostanem. |
||
CASO Profil * |
#6 · Zasláno: 31. 12. 2007, 11:56:27
tak tu kopirujem cely skript trochu som ho zuzil o nepotrebne informacie aj ked by som mohol viac,.. ale pripadne si ho mozte spustit a uvidite,.. vlastne dosiahnut chcem aby sa mi ta funkcia teda aby prebehla bez problemu,... dik za tu konzolu dolu som skopiroval chybu
<html> <head> <title> </title> <script type="text/javascript" language="javascript"> function nevidene() { document.getElementById('radio1').style.visibility="hidden"; document.getElementById('span_existujucej').style.visibility="hidden"; } </script> </head> <body> <script> nevidene(); </script> <form name="moj_formular" method="post" action="pridaj_clanok.php"> <table border="0"> <tr> <td> Názov Článku (max 30 zn.) </td> <td> Pridať článok do kategórie</td> </tr> <tr> <td> <input type="text" maxlength="30" name="name_article" size="93" value="názov článku" onfocus="if(this.value=='názov článku') this.value=''"> </td> <td> <span style="float: left;"> novej </span><span id="span_existujucej" style="float: right;"> existujúcej </span></td></tr> <tr> <td> Článok </td> <td> <input id="radio1" style="float: right;" name="druh_kat" value="nova_kat" type="radio" onClick="document.moj_formular.kategorie.style.display='block',document.moj_formular.vyt_kat.style.display='none'"> <input id="radio2" style="float: left;" name="druh_kat" value="stara_kat" type="radio" checked onClick="document.moj_formular.vyt_kat.style.display='block',document. moj_formular.kategorie.style.display='none'"> </td></tr> <tr> <td> <textarea name="body_article" cols="70" rows="20" wrap="soft">text článku</textarea></td> <td valign="top"> <select style="width: 100%; display: none;" name="kategorie" size="1"> <option value="je jedno">dve </select> <input style="width: 100%;" type="text" maxlength="30" name="vyt_kat" value="nová kategória" OnClick="if(this.value=='nová kategória')this.value='';"> </td></tr> <tr> <td> <input type="submit" value="pridaj"> </td> </tr> </table> </form> </body> </html> Chyba: document.getElementById("radio1") has no properties Zdrojový soubor: http://localhost/lol.php Řádek: 7 |
||
CASO Profil * |
#7 · Zasláno: 31. 12. 2007, 11:58:12
zabudol som zvyraznit este hned za <body> je ten <script> </script> to je dolezite
|
||
CASO Profil * |
#8 · Zasláno: 31. 12. 2007, 12:06:41
no cize ked toto:
<body> <script> nevidene(); </script> vymenim za toto: <body onLoad="nevidene();"> tak to funguje - bez chyby,.. preto si lamem nad tym hlavu ze vlastne JS funkcia funguje iba pri nejakej udalosti ??? |
||
Jan Tvrdík Profil |
#9 · Zasláno: 31. 12. 2007, 12:14:09
CASO
Zkus dát ten script na konec: <body> (...) <script> nevidene(); </script> </body> |
||
CASO Profil * |
#10 · Zasláno: 31. 12. 2007, 12:18:04
Jan Tvrdík
aha, funguje takže z toho mám usúdiť že JS nenájde ID pokiaľ je v dokumente nižšie ako je volaná funkcia? ,.. a inak thx zdá sa že zas budem o niečo múdrejši :) |
||
Jan Tvrdík Profil |
#11 · Zasláno: 31. 12. 2007, 12:24:34
CASO
Příště doporučuji používat Firefox + Firebug |
||
CASO Profil * |
#12 · Zasláno: 31. 12. 2007, 12:29:56
Jan Tvrdík
no akurát čítam článok na intervale o tom,.. a čiže tá dedukcia "že JS nenájde ID pokiaľ je v dokumente nižšie ako je volaná funkcia?" je správna? aby som s tým mohol pracovať,.. nech to že som tu otravoval ľudí má dáky efekt :) |
||
habendorf Profil |
#13 · Zasláno: 31. 12. 2007, 14:48:20
CASO
No jistě. HTML kód se zpracovává postupně od začátku do konce, parser si postupně vytváří stromovou strukturu dokumentu. Jak by podle tebe měl naložit s elementem, o jehož existenci ještě neví? |
||
peta Profil |
#14 · Zasláno: 31. 12. 2007, 19:14:47
CASO
Mno, ono jde o to, co uz kdosi psal nahore. Proste ten prvek jeste neexistuje, takze na nej nemuzes nic uplatnit. Kdezto body onload se provadi az po nacteni obsahu tagu body. Tim padem prvek existuje... Totez, kdyz das script na konec body. Kopirovani kodu je naprosto zbytecne, neuzitecne, odkaz je lepsi. Proc? - jednak toto forum nejake veci mrsi z kodu - pak nelze pocitat radky (chyba na radku... metoda...), a jeste napises, zes neco smazal, treba to byl zrovna ten sedmy radek A kdyz jsme u toho, chyba byla zrovna na radku, ktery jsi v prvnim dotazu neuvedl. To se pak tezko hleda. |
||
Časová prodleva: 16 let
|
0