Autor Zpráva
MirdaH
Profil
Snažím se vytvořit program na generování náhodných čísel, ale ne a ne fungovat. Asi hodinu jsem se s tím mořil a na nic jsem nepřišel, takže hádám, že to bude nějaká banalita anebo něco, k čemu jsem se v tutoriálech ještě nedostal. Kdyby někdo věděl o nějakém jiném a snažším provedení, budu jen rád.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head> <title> Generování náhodných čísel </title>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<script type="text/javascript">
<!--
var stopka=0; 
function hranice()
{var max=prompt("Zadej rozmezí pro generování náhodných čísel:","100");}
function generuj()
{while(stopka==0)
{var cislo=Math.floor(Math.random()*(max+1));
document.write(cislo,"<br />");}}
//-->
</script>
</head>
<body onload="hranice();">
<input type="button" value="Generuj" onclick="generuj();" />
<input type="button" value="Změň hranici" onclick="stopka=1;hranice();" />
<input type="button" value="Stop" onclick="stopka=1;" />
</body>
</html>
Nox
Profil
vytváříš proměnnou ve funkci a ta tudíž hned s jejím skončením umře, takže "var max" před funkce a uvnitř už jen "max"

možná bys mohl dávat sem tam volný řádek, nejsou ani moc vidět hranice mezi funkcemi

document.write funguje jen jednou při načítání stránky a obecně se téměř nepoužívá, místo toho třeba měň innerHTML nějakého elementu
baklazan
Profil
namiesto document.write skus pouzit alert alebo inu funckiu viz FAQ
MirdaH
Profil
Tak už mi to funguje, bylo to tím definováním proměnné ve funkci. Ještě zkusím udělat něco s tím document.write. Alert mi nepřijde jako dobrý nápad, takže zkusím ten innerText.
Bubák
Profil
Doporučuji použít raději innerHTML, umí ho prakticky všechny prohlížeče.
MirdaH
Profil
Bubák:
InnerHtml mi nefunguje, kdežto InnerText ano. Ale beztak mi to vypíše jen poslední vygenerované číslo místo řady všech náhodných čísel. Není document.write přece jen lepší?
Nox
Profil
Bubák:
souhlas, chybka

MirdaH:
Mám pocit že je tam nějaká odlišnost u IE...

snad takhle by to mohlo jít
if( element.innerHTML) element.innerHTML+= cislo + " ";
elseif( element.innerText ) element.innerText += cislo + " ";
MirdaH
Profil
Tak už se všechno vypisuje tak jak má, ale pořád tam musím psát innerText, a to nepoužívám IE, ale Operu (verze 10.53). Vypadá to takto:
document.getElementById("vypis").innerText+= cislo + " ";
...
<div id="vypis"></div> 
Chamurappi
Profil
Reaguji na MirduH:
Není document.write přece jen lepší?
Není.


Reaguji na Noxe:
Mám pocit že je tam nějaká odlišnost u IE
Není.
Vlastnosti innerHTML (s velkými písmeny „HTML“) i innerText zavedl kdysi dávno Explorer (čtyřka tuším) a hodně dlouho byl jediný, kdo je podporoval. Nyní už podporují skoro všichni innerHTML a jen někteří innerText.
MirdaH
Profil
Chamurappi:
Díky moc, s těmi velkými písmeny to funguje. To, že document.write maže stránku, vím, ale v mém případě by to moc nevadilo.

Edit: U kterých příkazů si musím dávat pozor na velká/malá písmena? Je někde jejich seznam?
Radek9
Profil
MirdaH:
U kterých příkazů si musím dávat pozor na velká/malá písmena?
Vlastně u všech. Např. getElementById není to samé jako getelementbyid nebo getElementByID.
MirdaH
Profil
Radek9:
Já jsem měl zato, že zrovna u getelementbyid to nevadí. A u events je taky rozdíl např. mezi onclick a OnClick?
panther
Profil
MirdaH:
A u events je taky rozdíl např. mezi onclick a OnClick?
můžeš si to snadno sám zkusit, na to nemusíš pokládat dotaz do diskuse.

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:

0