Autor | Zpráva | ||
---|---|---|---|
Martinik Profil * |
#1 · Zasláno: 11. 5. 2010, 15:26:23
Ahoj, začátečník žádá o pomoc s něčím pravděpodobně banálním. Je to velice prostý script, ale opravdu nevím, proč nefunguje. Potřebuji aby se po spuštění na stránce po sobě zobrazili tři řetězce uvnitř divu. Použil jsem setInterval, ale nechce mi to běhat. Nevíte, v čem je zakopanej pes?
<html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Testovací stránka</title> </head> <body style="text-align: center;" onLoad="noFlash()"> <script type="text/javascript"> var dynText = document.getElementById("dynamic_text").innerHTML; var x = 0; var poleTextu = ["<h1>Vítejte...</h1>","<h2>Vítejte napodruhé</h2>","<h3>A vítejte napotřetí</h3>"]; function noFlash() { var mujInterval = setInterval("zmenText()", 2000); } function zmenText() { if(x == 2) {clearInterval(mujInterval);} dynText = poleTextu[x]; x+=1; } </script> <div id="dynamic_text"> </div> </body> </html> |
||
Davex Profil |
#2 · Zasláno: 11. 5. 2010, 21:57:59 · Upravil/a: Davex
1. V okamžiku volání metody document.getElementById("dynamic_text") ještě element #dynamic_text neexistuje, protože je až za skriptem.
2. Funkce zmenText() nemá přístup k lokální proměnné mujInterval ve funkci noFlash(). 3. Měníš hodnotu proměnné dynText a nikoliv obsah elementu #dynamic_text. Ke zprovoznění nefunkčních skriptů používej chybovou konzoli prohlížeče a doplněk Firebug ve Firefoxu. |
||
Časová prodleva: 14 let
|
0