Autor Zpráva
xx-xx
Profil *
Dobrý den,

chtěl bych mít na stránce 2× stejný javascript (s jiným obsahem), ale když ho 2× vložím, nezobrazí se ani jeden. Přitom když ho na stránku vložím jen jednou, zobrazí se. Nevíte, co dělám špatně? Jedná se o tento javascript:

<script language="javascript">
<!--
doba=3000
pocet = 5
rotator=0
obrsrc = new Array(pocet)
cesta =new Array(pocet)
obrsrc[0]="Obrazky/8211.jpg"; cesta[0]="http://charmed4p.ic.cz/";
obrsrc[1]="Obrazky/8212.jpg"; cesta[1]="http://charmed4p.ic.cz/";
obrsrc[2]="Obrazky/8213.jpg"; cesta[2]="http://charmed4p.ic.cz/";
obrsrc[3]="Obrazky/8214.jpg"; cesta[3]="http://charmed4p.ic.cz/";
obrsrc[4]="Obrazky/8215.jpg"; cesta[4]="http://charmed4p.ic.cz/";
obr = new Array(pocet);
for (i=0; i < pocet; i++){
obr[i]= new Image();
obr[i].src= obrsrc[i]
}
function rotate() {
if (rotator==pocet) {rotator=0;}
document.images["obraz"].src = obrsrc[rotator];
rotator = rotator + 1
window.setTimeout('rotate();',doba);
}
function poslat() {
window.location=cesta[rotator-1];
return false;
}
//--></script>
</head>
<body onLoad="rotate();">
<a href="http://charmed4p.ic.cz/" onclick="return poslat();">
<img name="obraz" src="obrazek.gif" border="0" width="180" height="135"></a>
</body>
panther
Profil
xx-xx
nevím, jestli se mi to jen nezdá, ale nechybí ti tam spousta středníků?

Používej značku pro vkládání kódu, bude přehlednější a s větší pravděpodoností se ti dostane odpovědi.
xx-xx
Profil *
Doplnil jsem to o středníky a teď se mi to, co má být ve druhém scriptu, zobrazuje v prvním a druhý se nezobrazuje vůbec.
Trejpa
Profil
xx-xx
Problém je v tom, že při druhém použití se používají stejné jména proměnných a funkcí což samozřejmě nedělá dobrotu.

Buď by to bylo třeba přepsat do univerzálnější podoby (doporučuji) nebo změnit ve druhém případě jména proměnných, funkcí a obrázku. Snad jsem na nic nezapomněl:
<script language="javascript">
<!-- 
doba2=3000
pocet2 = 5
rotator2=0
obrsrc2 = new Array(pocet2)
cesta2 =new Array(pocet2)
obrsrc2[0]="Obrazky/8211.jpg"; cesta2[0]="http://charmed4p.ic.cz/";
obrsrc2[1]="Obrazky/8212.jpg"; cesta2[1]="http://charmed4p.ic.cz/";
obrsrc2[2]="Obrazky/8213.jpg"; cesta2[2]="http://charmed4p.ic.cz/";
obrsrc2[3]="Obrazky/8214.jpg"; cesta2[3]="http://charmed4p.ic.cz/";
obrsrc2[4]="Obrazky/8215.jpg"; cesta2[4]="http://charmed4p.ic.cz/";
obr2 = new Array(pocet2);
for (i2=0; i2 < pocet2; i2++){
obr2[i2]= new Image();
obr2[i2].src= obrsrc2[i2]
}
function rotate2() {
if (rotator2==pocet2) {rotator2=0;}
document.images["obraz2"].src = obrsrc2[rotator2];
rotator2 = rotator2 + 1
window.setTimeout('rotate2();',doba2);
}
function poslat2() {
window.location=cesta2[rotator2-1];
return false;
}
//--></script>
</head>
<body onLoad="rotate2();">
<a href="http://charmed4p.ic.cz/" onclick="return poslat2();">
<img name="obraz2" src="obrazek.gif" border="0" width="180" height="135"></a>
</body>



Potom také raději něco ve smyslu:
<body onLoad="rotate(); rotate2();">




panther
nechybí ti tam spousta středníků
Ani ne. Jako ukončení příkazu lze v JavaScriptu kromě středníku použít i konec řádku. Ale sám to také nedělám.
xx-xx
Profil *
Děkuju mockrát. Html i php sice ovládám, ale v javascriptech jsem začátěčník, takže moc děkuji za trpělivost.
Trejpa
Profil
xx-xx
Není zač, vyzkoušej. Ještě jsem to upravil, byla tam chybička.
xx-xx
Profil *
Tak nevím proč, ale stejně to nefunguje. První script se už sice zobrazuje dobře, ale u druhého se místo obrázku objeví rámeček a červená tečka.
Trejpa
Profil
xx-xx
Po tom doplnění [#6] to funguje.
xx-xx
Profil *
Já už to vůbec nechápu. Vidím, že to funguje, ale když to hodím na stránku, tak jsou tam pořád jenom rámečky a červené tečky.
Trejpa
Profil
xx-xx
Kolikrát máš na stránce <body>? Mělo by tam být jednou (eventuálně spouštěč onload v tom prvním).
Změnil jsi zpět adresu těch obrázků?
xx-xx
Profil *
Tak už to funguje, nechápu, proč to předtím nešlo. :-o Tak moc moc děkuju. :-)

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: