Autor Zpráva
senior
Profil
Príjemný deň,

hľadal som na nete i tu nejaký JS, ktorý by mi stále dookola menil obrázky. Našiel som toto, úplne to splňa moje predstavy, ale JS po 10 sekundách otvorí novú stránku, čo nepotrebujem. Prosím pomôžte mi s úpravou JS. Ďakujem.

<img name="odect" width="30" height="30" src="odect1.gif">
<script language="javascript">

// porad dokola volana funkce, ktera nam pricita sekundy a meni obrazek
function pricti(i)
{
// inkrementujeme promennou pocitajici sekundy
i = i + 1;

// nastavime obrazek na odect(promenna).gif, takze treba na odec1.gif
document.images['odect'].src='odect'+i+'.gif';

// pokud napocitame deset sekund tak se presmerujeme na nova.htm
if ( i == 10 ) document.location = 'nova.htm';

return i;

}

// inicializujeme promennou i ktera nam pocita sekundy
i = 0;


// casovani po vterinach a volani funkce pricti ( 1 * 1000 milisekund )
window.setInterval ("i = pricti(i)", 1 * 1000);


</script>
habendorf
Profil
/ pokud napocitame deset sekund tak se presmerujeme na nova.htm
if ( i == 10 ) document.location = 'nova.htm';


Vždyť je to tam i popsaný. Takže si zkus tipnout, co je třeba z toho skriptu odmáznout.
senior
Profil
habendorf
Skúsil som vymazať
if ( i == 10 ) document.location = 'nova.htm';
ale JS pokračuje ďalej - odect11.gif, odect12.gif ..., takže to nepomohlo.
habendorf
Profil
No to je jasný, také nemá důvod nepokračovat. Myslel jsem, že otázka zní, jak zamezit přesměrování na nova.htm.

if ( i == 10 ) i=0;

Jinak zde by byl asi lepší cyklus for.
senior
Profil
habendorf
Prepáč, ale "Jinak zde by byl asi lepší cyklus for." je pre mňa španielská dedina :-(
habendorf
Profil
No ale to if ( i == 10 ) i=0; by fungovat mělo.

Jinak k cyklu for: http://www.jakpsatweb.cz/javascript/vetveni.html#for
senior
Profil
habendorf
Vďaka ono to funguje, takže asi nebudem špekulovať s for.
Poprosím ešte o skontrolovanie čistoty a správnosti JS. Ešte raz ďakujem.

<script language="javascript">

// porad dokola volana funkce, ktera nam pricita sekundy a meni obrazek
function pricti(i)
{
// inkrementujeme promennou pocitajici sekundy
i = i + 1;

// nastavime obrazek na odect(promenna).gif, takze treba na odec1.gif
document.images['odect'].src='odect'+i+'.gif';

// pokud napocitame deset sekund tak se presmerujeme na nova.htm
if ( i == 10 ) i=0;

return i;

}

// inicializujeme promennou i ktera nam pocita sekundy
i = 0;


// casovani po vterinach a volani funkce pricti ( 1 * 1000 milisekund )
window.setInterval ("i = pricti(i)", 1 * 1000);


</script>
peta
Profil
i = 0; -> URCITE var i=0;
i = i + 1; -> NEBO i++;
if ( i == 10 ) i=0; -> NEBO i%=10;
habendorf
for nelze pouzit, protoze on 10x vymenuje 1x obrazek, nikoliv 10 ruznych.
senior
Profil
peta
Vďaka, ale prečo
i = 0; -> URCITE var i=0;
keď to funguje? Učím sa JS, takže preto tá otázka lamy.
Leo
Profil
"Vďaka, ale prečo
i = 0; -> URCITE var i=0;
keď to funguje? Učím sa JS, takže preto tá otázka lamy."

Protoze nikdy nevite, jestli promenna i neni uz definovana, Leo
Chamurappi
Profil
Reaguji na Lea:
Přidání „var“ na tom ovšem u globální proměnné nic nezmění.
peta
Profil
Chamurappi
a, opet promluvil expert, boze pomoz :)
Chamurappi
Profil
Reaguji na petu:
Buď mi zkusíš vysvětlit, co jsem řekl špatně, nebo tvůj anonymní pobožný výkřik smažu.
peta
Profil
Chamurappi Jsem pro to smazani. Jen mne potesilo, co vsechno se jeste od tebe dozvim po stovkach JS programu. Proste tam to var ma byt. Jestli to funguje bez nej je vec prohlizece a v jinem to tak byt nemusi. Pravdepodobne to pojede v IE, pravdepodobne v tebou oblibene Opere a je mozne, ze ve FF tuto funkci tez zprovoznili. Ale nespolehal bych na to. Presne jako minule, uz nevim, o co slo. Nejaka pitomost. Tak to tam proste neda, no, bude mu to fungovat. Spokojenej. Neresit.
Chamurappi
Profil
Reaguji na petu:
Jestli to funguje bez nej je vec prohlizece a v jinem to tak byt nemusi
Musí. Najdi mi prohlížeč, kde to hází chybu.
Sám píšu „var“ vždy, ale jen kvůli přehlednosti (o té Leo nemluvil), na funkčnost to nemá vliv.

je mozne, ze ve FF tuto funkci tez zprovoznili
Tato „funkce“ v něm funguje odjakživa.
es
Profil *
„Jestli to funguje bez nej je vec prohlizece a v jinem to tak byt nemusi“
Musí. Najdi mi prohlížeč, kde to hází chybu.

Predpokladám, že to je aj v špecifikácii javascriptu.
Či to tam podľa nej byť musí alebo len môže.
Leo
Profil
Mily Chamurappi, zkuste si v IE tento kod (html omacku jako head, body atd. vynechavam) a kouknete se na chyby:

1,

<p id="x">Blabla</p>
<script type="text/javascript">
x = 5;
</script>

a ted tenhle:

2,

<p id="x">Blabla</p>
<script type="text/javascript">
var x = 5;
</script>

Leo
Chamurappi
Profil
Reaguji na Lea:
Pravda, na to jsem zapomněl. Omlouvám se, milý Leo.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: