| | |
| Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
Autor | Správa |
---|
Registrovaný: 27.01.11 Prihlásený: 08.05.12 Príspevky: 73 Témy: 29 |
Ahojte, mam taky problem. Vsetko mi na tomto skripte ide(MOJ VLASTNY):
Kód: <script language="javascript" type="text/javascript"> function asdf() { var farby = new Array("#33FF00","#D580FE","#809FFE"); var asdf = Math.floor(Math.random()*3); document.write(farby[asdf]); document.body.style.background = farby[asdf]; setTimeout('asdf()',1000); } </script>
<body onLoad="mytime=setTimeout('asdf()',1000)"> </body>
Az na to, ze ked sa to raz spusti, po sekunde sa nic nedeje. DIky vopred // pridané po 8 minútach od posledného príspevkuEDIT: Asi som zistil preco to nejde. Ale opravit to neviem. Podla mna sa to dookola toci, len neni novy random...
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | |
Registrovaný: 27.01.11 Prihlásený: 08.05.12 Príspevky: 73 Témy: 29 |
Ďuri píše: Nemozes pouzivat document.write po nacitani stranky. Ak chces kod farby vypisovat, men vlastnost innerHTML nejakeho elementu. Inak skript funguje, akurat je dost prasacky napisany.
No skusal som document.body.style.background.innerHTML atd.... a nic. Ani sa nenastavil background. P.S. Ak viem, tak mne by to aj slo. Len akoby nesiel Timer. Keby to slo, tak aspon da inu HEX farbu. Ale nic. Vsetko stoji. Ale ma to ucast aj ten refresh. P.S. Ja som v JS newbie
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 20.08.2011 21:31 | |
|
Ked chces menit CSS vlastnost background, nastav document.body.style.background. Vlastnost innerHTML sluzi na nieco ine.
|
|
Registrovaný: 20.08.11 Prihlásený: 14.03.12 Príspevky: 66 Témy: 4 | Napísal Peppy: 20.08.2011 21:54 | |
|
ďalšia vec. Rekurzíva ti asi nič nehovorí, že? Ide o to, že máš tam nekonečný cyklus, stránka tak bude pracovať proste donekonečna.
_________________ Karel Kryl a Jaromír Nohavica Fanda. |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 21.08.2011 7:59 | |
|
takto pouzitu "rekurziu" som uz dlhsie nevidel, slusny gulas,
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 21.08.2011 18:58 | |
|
ocom pisete? to mi teda vysvetlite s tou nekonecnou rekurziou....pchchchch
|
|
Registrovaný: 20.08.11 Prihlásený: 14.03.12 Príspevky: 66 Témy: 4 | Napísal Peppy: 21.08.2011 19:12 | |
|
Asi o tomto:
Kód: function a() { a(); }
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 21.08.2011 20:50 | |
|
Aky problem? Kod je sice napisany prasacky, ale rekurzia ("rekurziva" ) je myslim presne to, co autor temy zamyslal. Navyse so zavolanim fcie sa vzdy caka sekundu, takze myslim, ze v poriadku.
|
|
Registrovaný: 20.08.11 Prihlásený: 14.03.12 Príspevky: 66 Témy: 4 | Napísal Peppy: 21.08.2011 21:34 | |
|
=D no, preklepy sú asi na dennom poriadku. No, neviem, takto preťažovať zbytočne počítač len kvôli náhodne meniacemu sa pozadiu. To bude niečo na spôsob "shocking page.
_________________ Karel Kryl a Jaromír Nohavica Fanda. |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 22.08.2011 8:32 | |
|
stale nechapem. chyba je tam taka ze asdf je nazov aj funkcie a potom to preserie na nazov premennej pomocou ktorej urcuje nahodny vyber farby. Ako takto pretazovat pocitac?
Si pozri skoro vsetky flash zalezitosti co ti nutia webstranky a ze jak vytazuju pocitac.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 22.08.2011 9:35 | |
|
juho, chces vediet, preco nemas pravdu? Tym, ze metodu setTimeout() zavola s retazcom ako prvym argumentom, vykona sa tento kod v globalnom scope a tam ziadna premenna menom asdf definovana nie je. Samozrejme, keby sa autor temy drzal spravnych programatorskych konvencii, spominany problem by sa ukazal.
|
|
Registrovaný: 27.01.11 Prihlásený: 08.05.12 Príspevky: 73 Témy: 29 |
=D Asi som zistil preco to nejde. mytime=setTimeout('asdf()',1000) = mytime=setTimeout(asdf(),1000)
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 05.10.2011 9:28 | |
|
To je uplne zle, pretoze fciu asdf zavolas okamzite a ako prvy argument setTimeoutu sa pouzije undefined. Spravny zapis je setTimeout(asdf, 1000), bez uvodzoviek a bez zatvoriek. Rovnako ale potom nezabudni, ze asdf uz budes mat prepisane lokalnou premennou, takze si to bud premenuj, alebo odkazuj na fciu cez arguments.callee, alebo cez window.asdf.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 05.10.2011 14:23 | |
|
Tie úvodzovky tam byť môžu, pretože kedysi sa tam používal reťazec (dnes je ale rozumnejšie tam dať len ten názov funkcie).
|
|
Registrovaný: 27.01.11 Prihlásený: 08.05.12 Príspevky: 73 Témy: 29 |
Ok ono to funguje. Len ja som mal Operu a tam to iba raz sa spustilo, a do ze sa mazala obrazovka, to robilo document.write. Duri: Nwm ako pouzit innerHTML v document.write
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 05.10.2011 17:20 | |
|
Ty hlavne nevieš základy, ktoré by si si mal doštudovať!
innerHTML je vlastnosť elementu, ktorý nemôžeš požiť s document.write, pretože ten element v tom momente ešte neexistuje...
|
|
Registrovaný: 27.01.11 Prihlásený: 08.05.12 Príspevky: 73 Témy: 29 |
camo píše: Ty hlavne nevieš základy, ktoré by si si mal doštudovať! innerHTML je vlastnosť elementu, ktorý nemôžeš požiť s document.write, pretože ten element v tom momente ešte neexistuje...
Camo, ano, v JS som novacik, ale zdelavam sa . Syntaxu uz celkom chapem, no tie funkcie tie zakladne neviem..
|
|
| Stránka: 1 z 1
| [ Príspevkov: 18 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| VB: Timer (časovač) v Delphi, Visual Basic | 0 | 1816 | 19.08.2007 15:25 VerbaTom | | Timer alebo daco take v Assembler, C, C++, Pascal, Java | 5 | 838 | 19.04.2008 22:56 Ivan11114 | | I/P: PC - old timer, P1 166MHz, 14" CRT, repro, tlačiareň v Predám | 1 | 367 | 12.02.2011 23:23 Daron | | Ako načítať z Edit-u do Timer-u v Delphi, Visual Basic | 13 | 1237 | 29.05.2011 17:27 petercvm | | Pri spusteni v Operačné systémy Unix a Linux | 3 | 542 | 07.04.2011 21:24 Denco1 | | pri spusteni systemu v Operačné systémy Microsoft | 6 | 1002 | 26.01.2006 18:54 Fenius | | Ping pri spusteni v Sieťové a internetové programy | 8 | 593 | 09.05.2011 23:28 zdekam123 | | Záznam spustení\vypnutí v Ostatné programy | 4 | 608 | 10.07.2007 12:16 yossarian | | Problém pri spustení v Ostatné | 1 | 414 | 27.07.2012 20:35 Sh4d0W | | problem pri spusteni v Operačné systémy Microsoft | 5 | 471 | 29.11.2009 2:14 Chaos | | zaseknutie po spusteni v Intel čipové sady | 5 | 578 | 03.02.2009 23:23 EndersoN | | Problém po spustení v Operačné systémy Microsoft | 10 | 533 | 23.04.2014 21:03 shiro | | Aplikacie pri spustení v Ostatné programy | 3 | 452 | 07.03.2021 14:09 Neviem9 | | casovac aplikacii pri spusteni v Ostatné programy | 0 | 609 | 16.03.2008 19:23 emajko159 | | Problém po spustení hier v Počítačové hry | 4 | 189 | 29.01.2024 14:57 shiro | | vista - chyba pri spusteni v Operačné systémy Microsoft | 3 | 428 | 16.02.2010 12:22 stanley |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|