Autor Zpráva
Tono222
Profil
Chcel som si pridať na stránku náhodný obrázok pomocou JavaScriptu. Však, ani jeden mi nešiel. Tak som skúšal, až to vyšlo. Tu ho máte:
<SCRIPT LANGUAGE="JavaScript" >
<!--
<!--
obrázek0="<A HREF=adresa.jpg TARGET=_blank><IMG SRC=adresa.jpg></A>"
obrázek1="<A HREF=adresa.jpg TARGET=_blank><IMG SRC=adresa.jpg></A>"
obrázek2="<A HREF=adresa.jpg TARGET=_blank><IMG SRC=adresa.jpg></A>"
obrázek3="<A HREF=adresa.jpg TARGET=_blank><IMG SRC=adresa.jpg></A>"

today2=new Date()
pocet_obrazku=4
today=today2.getTime()/10
rnd=parseInt(today%pocet_obrazku)
document.writeln(eval("obrázek"+rnd))
//-->
//-->
</script>

pocet_obrazku - počet obrázkov, koľko sa majú meniť.
Chamurappi
Profil
Reaguji na Tono222:
Kód je funkční, ale ošklivý. Nedoporučuji.
Navíc nevypisuje náhodný obrázek, ale obrázek určený podle aktuální milisekundy, což u rychleji vnímajících návštěvníků s interním časovačem nemusí vyvolat ten správný dojem překvapení.

Napsal bych to spíš takto:
<script>
var obrazky = ["adresa1.jpg", "adresa2.jpg", "adresa3.jpg", "adresa4.jpg"];
var obrazek = obrazky[Math.floor(Math.random() * obrazky.length)];
document.write("<A HREF=" + obrazek + " TARGET=_blank><IMG SRC=" + obrazek + "></A>");
</script>
_es
Profil
Chamurappi
Prečo nie sú v sfarbení kódu zafarbené funkcie floor a random?
Bolo by to dosť užitočné, keby sa dalo po kliknutí na ne, rýchlo zistiť ich parametre a pod.

Funkcia random asi nebude až tak celkom náhodná, no na takéto prkotiny je asi dostačujúca.
Skombinovanie random s časom by mohlo byť náhodnejšie.
Alebo čo iné by sa ešte v JavaScripte dalo považovať za náhodné?
Chamurappi
Profil
Reaguji na _es:
Prečo nie sú v sfarbení kódu zafarbené funkcie floor a random?
Asi je JUSH nezná. Nevím. O barvení kódů se stará Kajman.

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: