Autor Zpráva
3-11o
Profil
Zdravím.

Vytvářím něco jako měnící se banner, ale nevyznám se tolik v JS. (Prosím, nemusíte se vysilovat větami typu "tak se to nauč". Už se na tom pracuje, bohužel mě tlačí čas.)

Jde o to, že se mi sice mění v časovém intervalu obrázky, bohužel mi nefunguje zároveň i změna url. Obrázky se mění po nějakých 20 sekundách, url ovšem zůstává stejné. Na internetu lze nalézt mnoho řešení, jak jednou vložit url, případně, jak url zapsat pomocí JS. Nikde ale funční varianta měnících se odkazů...

Máte někdo alespoň nápad? Čím jednodušší, tím lépe. Do tajů JS teprva pronikám.
Za jakoukoliv reakci předem velmi děkuji..
Chamurappi
Profil
Reaguji na 3-11a:
bohužel mi nefunguje zároveň i změna url
Změnou url myslíš tedy změnu hrefu na odkazu?
V tom žádný háček není, prostě změníš vlastnost href, stejně jako u obrázků měníš vlastnost src. Pokud ti to nefunguje, děláš něco špatně a bez ukázky není v naší moci chybu odhalit.
3-11o
Profil
Chamurappi:
Ano, přesně tak..

Mno, určitě dělám něco špatně. Nejspíš ještě zcela nechápu syntaxi..

Ukázka zde:

<script language="JavaScript" type="text/javascript">
pocet = -1;
cas = 12*1000;
function premena(){
obrazky = ["banner_1.gif","banner_2.gif"];
if (pocet+1==obrazky.length) pocet=0;
else pocet++;
obrazek.src = obrazky[pocet];
window.setTimeout('premena()',cas);
}

//změna obrázků... Funkční... Ale když se to pokusím implikovat na změnu href, nefunguje to. 

x = -1;
function abc(){
odkazy = ["http://www.google.cz","http://www.seznam.cz"];
if (x+1==odkazy.length) x=0;
else x++;
odkaz.href = odkazy[x];
window.setTimeout('abc()',cas);
}

</script>
<body onLoad="premena();abc()">

 <a href="" name="odkaz" > <img src="" name="obrazek"> </a>


Má snad být nějaký ukazatel na script v a href="" ??
Např. něco jako tohle fungovalo:

<script language="JavaScript" type="text/javascript">
var xy = "http://www.seznam.cz";
</script>

<a href="javascript:document.location=xy">TEXT</a>

Nevím, kde je chyba...


Hups.. Tak teď mě to zmátlo ještě víc.. V IE9 mi ta změna funguje. Ve FF a Chromu nikoliv. Co teď?
Joker
Profil
3-11o:
Řádek 19:
odkaz.href = odkazy[x];
Není nikde definovaná proměnná odkaz.
Mělo by před tím být něco jako:
var odkaz = document.getElementById("odkaz");

Nesouvisející, řádky 17-18:
if (x+1==odkazy.length) x=0;
else x++;
Sice to funguje, ale přijde mi to nepřehledné, lepší by bylo:
x++;
if(x == odkazy.length) x=0;
3-11o
Profil
Děkuji, to jsem nevěděla. Bohužel mi tentokrát konzole při kontrole napsala:

Uncaught TypeError: Cannot set property 'href' of null ..

Předpokládám, že se musí ještě nějak přepsat samotný href v HTML. Ale jak má vypadat?
... Navíc, v Internet Exploreru mi to nějakým zázrakem funguje.. V ostatních prohlížečích ne. =(

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: