Autor | Zpráva | ||
---|---|---|---|
147477 Profil |
Zdravím,
použil jsem tento funkční skript pro odpočítávání času: <script type="text/javascript"> var i = 15; setInterval("odpocet()", 1000); odpocet(); function odpocet() { if(i > 0) { var text; if((i < 5) && (i > 1)) { text = 'sekundy'; } else if(i == 1) { text = 'sekunda'; } else { text = 'sekund'; } /*setTimeout("odpocet()", 1000);*/ document.getElementById("cislo").innerHTML = 'Vyčkejte: ' + i + ' ' + text; i--; } else { document.getElementById("cislo").innerHTML = 'Vyčkejte: ' + i + ' sekund'; document.getElementById("cislo").innerHTML = 'Zde je obsah, který se objeví po skončení odpočtu'; } } </script> .............. <body onLoad="odpocet()"> .............. <span id="cislo"></span> Problém tkví v tom, že do toho obsahu potřebuji dostat .swf animaci. To je samo o sobě snadné, do posledního document.getElementById("cislo").innerHTML = stačí místo 'Zde je obsah, který se objeví po skončení odpočtu' vložit příslušný <object>. Jenže komplikace spočívá v tom, že po skončení odpočtu se animace sice načte, ale každou sekundu začne od začátku a já nevím, jak to zastavit. Poradťe prosím. EDIT: Když místo řádku s obsahem nastrčím window.clearInterval("cislo") = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ... </object>'; tak se podle očekávání nic nestane. :( |
||
weroro Profil |
Zdravím,
namiesto setInterval("odpocet()", 1000); by som skúsil var odp = setInterval(odpocet, 1000); a potom by som to zrušil pomocou clearInterval(odp); samozrejme, že ten set interval ale presuň až za tú funkciu odpocet.
|
||
147477 Profil |
Bohužel, nefunguje (asi jsem to špatně pochopil)...
var i = 200; var odp = setInterval(odpocet, 1000); odpocet(); .............. document.getElementById("cislo").innerHTML = 'Vyčkejte: ' + i + ' sekund'; clearInterval(odp) = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ... </object>'; |
||
weroro Profil |
A takto?
<script type="text/javascript"> var i = 15; var text, odp, content; function odpocet() { if (i > 0) { if (i == 1) text = 'sekunda'; else if (i > 1 && i < 5) text = 'sekundy'; else text = 'sekund'; content = 'Vyčkejte: ' + i + ' ' + text; i--; } else { clearInterval(odp); content = 'Zde je obsah, který se objeví po skončení odpočtu'; } document.getElementById("cislo").innerHTML = content; } function spustenie() { odpocet(); odp = setInterval(odpocet, 1000); } </script> <body onLoad="spustenie()"> <span id="cislo"></span> |
||
147477 Profil |
#5 · Zasláno: 5. 3. 2013, 19:00:34
Funguje - díky moc!
|
||
147477 Profil |
Vyřešeno. Stačila drobná úprava kódu - ten níže už je v pořádku.
Řeším teď takovou lahůdku: <script type="text/javascript"> var i = 15; var text, odp, content; function odpocet() { if (i > 0) { if (i == 1) text = 'sekunda'; else if (i > 1 && i < 5) text = 'sekundy'; else text = 'sekund'; content = 'Vyčkejte: ' + i + ' ' + text; i--; } else { clearInterval(odp); content = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ... </object>'; document.cookie = 'parametry'; } document.getElementById("cislo").innerHTML = content; } function spustenie() { odpocet(); odp = setInterval(odpocet, 1000); } </script> Po skončení odpočtu se velice správně založí nový cookie a zobrazí ona .swf animace. Jenže problém je v tom, že se zároveň na stránce nahlas zobrazí jeho parametry (viz skript), což je nežádoucí. Nešly by nějak ukrýt? Děkuji. Vyřešeno. Stačila drobná úprava kódu - ten výše už je v pořádku. |
||
Časová prodleva: 11 let
|
0