| 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: 13 let
|
|||
0