Autor | Zpráva | ||
---|---|---|---|
Radim Profil * |
#1 · Zasláno: 30. 7. 2006, 17:26:49
Zdravím.
Zjistil jsem, že document.all se používá jen v IE, a document.getelementbyid nepoužívá Moziilla. Alespoň mi s tím nejedou nějaké funkce. A tak se chci zeptat co mám v Mozille použít místo document.getelementbyid? |
||
habendorf Profil |
#2 · Zasláno: 30. 7. 2006, 17:30:48
document.getElementById
|
||
BaTeCzKo Profil |
#3 · Zasláno: 30. 7. 2006, 17:30:53
Pokuď vím, tak to jde normálně takto (načte hodnotu textového pole s id text ve formuláři s id form)
|
||
Radim Profil * |
#4 · Zasláno: 30. 7. 2006, 17:47:48
Jo, ale já potřebuji načíst spíš <TD></TD> nebo <DIV></DIV> A to bz přes form ne3lo.
|
||
Radim Profil * |
#5 · Zasláno: 30. 7. 2006, 17:48:12
To by přes form v Mozille nešlo.
|
||
Leo Profil |
#6 · Zasláno: 30. 7. 2006, 17:59:25
getElementById funguje dnes uz vsude, ovsem musite dodrzet velikost pismen
Leo |
||
habendorf Profil |
#7 · Zasláno: 30. 7. 2006, 18:05:28
getElementById funguje dnes uz vsude, ovsem musite dodrzet velikost pismen
Také jsem se mu to pokoušel naznačit :o) |
||
peta Profil * |
#8 · Zasláno: 30. 7. 2006, 19:36:55
Radim
Jo, ale já potřebuji načíst spíš <TD></TD> to bude mozna problem, co s tim TD zamyslis... Treba getelem... je dobre, jenom u TD je treba pouzit trochu jinou syntaxi pri dalsi prace. Ale to je jak vestit z kristalove koule, k cemu jsi to vlastne pouzil. Ono by to chtelo odkaz na tu stranku? Plus problem s malymi velkymi pismeny, JS neni PHP a getElementById je zcela neco jineho nez getelementbyid (habendorf Leo) Mne to treba naprosto bez problemu funguje na http://mracek.xhosting.cz/chat/ |
||
Tin Profil |
#9 · Zasláno: 30. 7. 2006, 21:47:31
peta getEl. načte úplně všechno a píše se pořád stejně. Tak co tady kecáš za kraviny?
|
||
djlj Profil |
#10 · Zasláno: 30. 7. 2006, 21:54:48
Tak co tady kecáš za kraviny?
Ale nekecá kraviny. Opravdu je třeba zachovat velká a malá písmena - getElementById. (Tedy, pokud jsi to myslel tak, že může být malými písmeny.) |
||
Tin Profil |
#11 · Zasláno: 30. 7. 2006, 22:14:39
TD je treba pouzit trochu jinou syntaxi tohle mi vadí.
To jak někdo mohl přijít na to, že je to malými písmeny, absolutně nechápu -- vlastně jo: lidská blbost. |
||
djlj Profil |
#12 · Zasláno: 30. 7. 2006, 22:17:17
Tin
Ajo, tak to jsem jen nepochopil tvůj příspěvek :) |
||
Anonymní Profil * |
#13 · Zasláno: 31. 7. 2006, 11:59:21
Existuje aj getElementByClass ??
Ak ano, ako sa to sprava ak ma element nadefinovanych viac tried
|
||
Leo Profil |
#14 · Zasláno: 31. 7. 2006, 12:26:37
"Existuje aj getElementByClass ??"
Ne, jedine ze si ho nadefinujete. Leo |
||
WanTo Profil |
#15 · Zasláno: 31. 7. 2006, 12:39:35
Navíc getElementByClass je naprostý nesmysl, protože může existovat více prvků stejné třídy. Šlo by napsat getElementsByClass().
|
||
peta Profil * |
#16 · Zasláno: 31. 7. 2006, 16:18:49
"Existuje aj getElementByClass ?"
Ano, v IE (msdn... microsoft.com) a jmenuje se to tusim ale getElementByClassName pripadne google.com napovi... http://www.google.com/search?hs=q6X&hl=cs&client=firefox-a&rls=org.moz illa%3Acs-CZ%3Aofficial&q=getelementbyclassName&btnG=Hledat&lr= http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassn ame/ Ale neni problem si to napsat... cyklus pro vsechny childNodes (a,i) cyklus pro vsechny childNodes childnodu (b,j) if (b[j].className == "ahoj") {b[j].style.color="#f00";} <span class="ahoj">aaaaaa</span> |
||
ah01 Profil |
#17 · Zasláno: 31. 7. 2006, 17:00:49 · Upravil/a: ah01
peta
ne, nic jako getElementByClass, getElementsByClass nebo getElementsByClassName (což je podle konvencí JS jediný vhodný název takové metody) v žádném prohlížeči není. Když uvádíš MSDN, tak se tam nejdřív koukni ... [url=http://search.msdn.microsoft.com/search/default.aspx?__VIEWSTATE= &query=getElementsByClassName&siteid=0&tab=0 ]http://search.msdn.microsoft.com/search/default.aspx?__VIEWSTATE=&que r y=getElementsByClassName&siteid=0&tab=0 [/url] Nicméně není problém takovou metodu dodefinovat. To už se tu jednou řešilo: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=26 179 |
||
Radim Profil * |
#18 · Zasláno: 1. 8. 2006, 08:12:19
Ahoj, přečtu si a pak vám napíšu. Možná bude lépe uvést konktrétní příklad.
|
||
Radim Profil * |
#19 · Zasláno: 1. 8. 2006, 08:13:22
|
||
Radim Profil * |
#20 · Zasláno: 1. 8. 2006, 08:17:16
ok našel jsem
|
||
Radim Profil * |
#21 · Zasláno: 2. 8. 2006, 15:31:26
Já jsem to omylem dal do jiné diskuse. Tak uvádím tys příklady. Já nemám odkjaz na soubor, protože to nemám dodělané, čoili to ještě není na netu.
<HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=windows-1250"> <SCRIPT language=JavaScript> function cas() //Ziskani casovych udaju z pocitace a prevedeni do podoby h:m:s + rok { dny=new Array("neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"); mesice=new Array("ledna","února","března","dubna","května","června","července","s rpna","září","října","listopdu","prosince"); dnes=new Date(); with (dnes) { poradi=getDate(); den=dny[getDay()]; mesic=mesice[getMonth()]; rok=getYear(); hodina=getHours(); minuta=getMinutes(); sekunda=getSeconds() } hodnota=den+" "+poradi+". "+mesic+" "+rok+" "+uprava(hodina)+":"+uprava(minuta)+":"+uprava(sekunda); return (hodnota) } function uprava(format) //Nekdy vyde cas 13:5:7 - provedeni upravy na tvar 13:05:07 { if (format<10) return ("0"+format); else return (format) } function hodiny() //Znovuobnoveni casu po 1 sekunde { // VERZE IE5 a výše - PROČ NEFUNGUJE? ANI V IE, ANI V MOZILLE? document.getElementById("cifernik).innerText=cas(); // VERZE IE4 a níže - FUNGUJE V IE (6.0) // document.all.cifernik.innerText=cas(); setTimeout("hodiny()",1000) } </SCRIPT> <BODY onload=hodiny();> <P id=cifernik align=center></P></B></FONT></TD> </BODY></HTML> Radim |
||
Radim Profil * |
#22 · Zasláno: 2. 8. 2006, 15:32:58
Příklad 2
<script language="JavaScript" type="text/javascript"> function getmytext() //Znovuobnoveni po 1 minutě { document.all.textonleft.innerText="Ahoj "; document.all.textonright.innerText="lidi"; } </script> <BODY onload='getmytext();'> <TABLE border=1 id=top class=I CELLSPACING=5><TR> <TD class=top_td width=229 ID=textonleft></TD> <TD class=top_td width=229 ID=textonright></TD> </TR></TABLE> </BODY> |
||
Radim Profil * |
#23 · Zasláno: 2. 8. 2006, 15:33:50
To jsou jen jednoduché příklady. Ani jeden mi nejede v mozille.
|
||
Radim Profil * |
#24 · Zasláno: 2. 8. 2006, 15:35:38
Anebo jste se mi pokoušeli naznačit, že mám místo getElementById použít getElementByClassName?
|
||
peta Profil * |
#25 · Zasláno: 2. 8. 2006, 16:15:54
document.all = jen a pouze IE
http://mracek.xhosting.cz/chat/ppChat.js function objGet2(d,x) {d=d==0?document:d; return (d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers [x]:null);} kde objGet2 je funkce, v niz figuruje navic i d promenna, kde muzes dat 0. Pouzivat to kvuli ramum, protoze tam si zadam d=parent.ramec1.document; objget2(d,"ahoj") <div id="ahoj"> Hele, ale ja ti to opisovat nebudu, mas to v zdrojaku toho chatu, najdi si. Funguje ti to tam snad i v IE i ve FF, ne? napsat par radku... Nevim, kde jsi sebral funkci: innerText , ale urcite bych to v tvem pripade nasel v google, co je to zac. Na toto ti musi JS konzola preci hlasit chybu! function hodiny() //Znovuobnoveni casu po 1 sekunde { // VERZE IE5 a výše - PROČ NEFUNGUJE? ANI V IE, ANI V MOZILLE? document.getElementById("cifernik).innerText=cas(); // VERZE IE4 a níže - FUNGUJE V IE (6.0) // document.all.cifernik.innerText=cas(); setTimeout("hodiny()",1000) } A zajimalo by mne jakou. Ale protoze jsi opet nedal odkaz na stranku, a nejsem takovy cvok, abych tvuj zdrojak kopiroval do me konstrukce a pak si vyslechl, ze to mam uplne jinak nez ty a ze mi to funguje neni podstatne... Dale, toto je dost podezrely nazev pro id D=textonleft kdyz zadam do google slova: javascript textonleft , mozna mi to najde nejakou JS funkci? Mozna, ze ne, ale davat na to pozor... function uprava(format) nepouziva se format pro nejake formatovani textu? "listopdu" Tato konstrukce se doporucuje nepouzivat: with (dnes) radeji dnes.getDate() , ikdyz je to delsi, za to mas jistotu, ze je to ok. treba pro window.parent.formularAhoj pouzivam: var f = window.parent.formularAhoj; f.aaa.value = 1; f.bbb.value = 2; f.ccc.innerHTML = "<b>eee</b>"; --- ale mohl bych pouzit i with with (window.parent.formularAhoj) { aaa.value = 1; bbb.value = 2; ccc.innerHTML = "<b>eee</b>"; } jenze: aaa.value = 1; muze byt input name="aaa" , ale take input mimo formular "formularAhoj" a pak neni jednoznacne, ktery z tech 2 se vlastne ma zmenit A vubec, mas firefox, nainstaluj si rozsirevi validator a nech si stranku projet validatorem. (Nastroje - rozsireni - ziskat nove rozsireni - development tools - HTML tidy validator) A dale si spus laskave JS konzolu a tam najdes, na kterem radku v JS je chyba: Nastroje - JS konzola, pak spustit program, cili F5 = refresh (zobrazit - obnovit stranku) |
||
Radim Profil * |
#26 · Zasláno: 3. 8. 2006, 15:37:38
pro lenivé:
http://pravatvar.wz.cz/temp/ex1.htm (ten už nejede ani v IE 6 - neviem proč) http://pravatvar.wz.cz/temp/ex2.htm |
||
Radim Profil * |
#27 · Zasláno: 3. 8. 2006, 15:38:26
Zrovna včera jsem to chtěl udělat (hledat to innertext)
|
||
Radim Profil * |
#28 · Zasláno: 3. 8. 2006, 15:41:18
Hmmm.... http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=5&topic=20 0
zajímavé... |
||
peta Profil * |
#29 · Zasláno: 3. 8. 2006, 16:11:55
http://pravatvar.wz.cz/temp/ex1.htm
na strance se ve FF nic nezobrazilo, konzola JS hlasi: Chyba: unterminated string literal Zdrojový soubor: http://pravatvar.wz.cz/temp/ex1.htm Řádek: 25, Sloupec: 24 Zdrojový kód: document.getElementById("cifernik).innerText=cas(); Chyba: hodiny is not defined Zdrojový soubor: http://pravatvar.wz.cz/temp/ex1.htm Řádek: 1 Cili, presne, co jsem rikal, ze je mi innerText podezrele, zkontrolovat googlem, pro ktere prohlizece je to kompatibilni. ==== Konzola IE na prvni odkaz hlasi: Neukoncena retezova konstanta, radek 25, znak 52 Byl ocekavan objekt, radek 32, znak 1 --- cili document.getElementById("cifernik????).innerText=cas(); tady schazi apostrof === Druhy odkaz FF konzola hlasi: Varování: Byla použita nestandardní vlastnost document.all. Používejte raději W3C standardizovaný document.getElementById(). Zdrojový soubor: http://pravatvar.wz.cz/temp/ex2.htm Řádek: 3 Varování: Byla použita nestandardní vlastnost document.all. Používejte raději W3C standardizovaný document.getElementById(). Zdrojový soubor: http://pravatvar.wz.cz/temp/ex2.htm Řádek: 4 IE nehlasi nic a vypise to. ... Dekujeme za pozornost a ted si oprav chyby :) Velice ti doporucuji pouzit funkci: function objGet2(d,x) {d=d==0?document:d; return (d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers [x]:null);} nebo upravenou verzi bez framu (coz je v podstate totez): function objGet(x) {var d=document; return (d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers [x]:null);} kde pak pouzijes objGet("aaa").innerHTML="ahoj"; <div id="aaa"></div> Nebo je mozne pouzit document.writeln("<div>ahoj</div>"), ale pak je nutne cely script nebo aspon tu cas, co vypisuje, dato do BODY Si prostuduj nejakou hru, co jsem delal, treba 3x3 piskvorky by nemela byt modifikace nejake z inetu: www.volny.cz/peter.mlich/hry/hry.htm A nebo ten chat, me posledni dilko, takze by melo byt vice mene vychytane... :) |
||
prvacek Profil |
#30 · Zasláno: 4. 8. 2006, 11:55:03
function Iframe()
{ window.frames["NAME iframeu"].location = "stranka.html"; return false; } |
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0