Autor Zpráva
Pavel Dumbrovský
Profil
Zdravím,
jsem JS amatér a potřeboval bych poradit, jak správně uvodit výpis funkce v jiné funkci.

Konkrétně zde je jakási funkce pro flash banner:
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
            'width', '900',
            'height', '90',
            'src', 'nejaka_adresa_banneru',
            'quality', 'high',
            'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
            'align', 'middle',
            'play', 'true',
            'loop', 'true',
            'scale', 'showall',
            'wmode', 'window',
            'devicefont', 'false',
            'id', 'nejaka_adresa_banneru',
            'bgcolor', '#ffffff',
            'name', 'nejaka_adresa_banneru',
            'menu', 'true',
            'allowFullScreen', 'false',
            'allowScriptAccess','always',
            'movie', 'nejaka_adresa_banneru',
            'salign', ''
            ); //end AC code


a já nejsem schopen do toho pořádně vložit funci eval a proměnnou, která by měla přijít všude namísto 'nejaka_adresa_banneru' aby to fungovalo, zde je kus js kódu, okdud to potřebuji sebrat:
document.writeln('<A HREF="'+eval("lnk"+rnd)+'"><IMG SRC='+eval("gfx"+rnd)+' ALT="'+eval("alt"+rnd)+'"><BR>'+eval("txt"+rnd)+'</A>');


Zkoušel jsem věci jako např.
'src', '"'eval("lnk"+rnd)'"',

ale to nevalí, prosím o pomoc, děkuji!
Chamurappi
Profil
Reaguji na Pavla Dumbrovského:
nejsem schopen do toho pořádně vložit funci eval a proměnnou
Brrr, na co eval? To je ale humus. Zbav se evalů a na pole používej pole.

Zkoušel jsem věci jako např.
Z uvedeného kódu (s tím humusem) je patrné, jak se v JavaScriptu (a ve většině jazyků založených na Céčku) spojují řetězce. Plusem. Rozdíl mezi jednoduchými a dvojitými uvozovkami neexistuje.
Pavel Dumbrovský
Profil
Díky za odpověď,
dobrá, ale konkrétně?

Zkoušel jsem :
'src', ' + eval("gfx"+rnd) + ',
'src', '" + eval("gfx"+rnd) + "',

ale furt nic, takže něco dělám pořád blbě. Já v JS opravdu nedělám, takže co dělá funkce eval nemám zdání a pole jsem v JS ještě nikdy nedělal. :)
Chamurappi
Profil
Reaguji na Pavla Dumbrovského:
Já v JS opravdu nedělám
Ani v jiných jazycích? Tohle je dost podobné všude. Uvozovkou (apostrofem) začneš zápis řetězce, který skončí další uvozovkou. To, co je v řetězci, se nevyhodnocuje jako příkaz.

co dělá funkce eval nemám zdání
Vyhodnocuje řetězec, jako kdyby to byl skript. Takže pokud je v proměnné rnd např. číslo 5, vrátí eval("gfx" + rnd) hodnotu proměnné gfx5. Ale řetězec ' + eval("gfx"+rnd) + ' zůstane řetězcem ' + eval("gfx"+rnd) + ', protože to je jen obyčejný řetězec.

pole jsem v JS ještě nikdy nedělal
Viz Pole na JPW.
Konkrétně tam dáš 'src', gfx[rnd], až budeš používat pole.
Pavel Dumbrovský
Profil
Díky za tip,
problém nebyl ani tak ve mně, to poslední co píšeš, je první co jsem zkoušel, ale ten skript byl celej strašnej. Když jsem to hodil do pole a dal tam to gfx[rnd], tak to pořád házelo chybu. Když jsem místo toho rnd dal třeba gfx[0], tak to jelo. Tak sem předělal to získání náhodnýho čísla, páč to byla šílenost:
len=2;  // change to equal number of banners
today=new Date();
today=today.getTime()/10;
rnd=today%len;

teď tam mám:
rnd = Math.round(Math.random()*1);

a valí v pohodě. :)

Tak díky!

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: