Príručka k JavaScriptu
5. kapitola

5.0 Polia

Jedna z dolezitych programovacich technik je pouzitie poli. Kazdy programovaci jazyk ich urcitym sposobom podporuje. Mozno, ze ste uz narazili na problem, v ktorom by Vam polia mohli pomoct. No, ked ste si prestudovali dokumentaciu Netscapu nikde ste o nich nenasli ani zmienku.

Co su to polia ? Mozno o nich povedat, ze je to viacero premennych v sebe. Povedzme, ze potrebujeme 10 premennych. Mozeme zacat s premennymi a,b,c.. No, bolo by to komplikovane hlavne v pripade, kedy by sme potrebovali mat 100 alebo viac premennych. Ked mame pole nazvane 'MyArray' obsahujuce 10 prvkov, tak mozeme jednoducho adresovat rozne prvky napr. MyArray[1], MyArray[2], MyArray[3]... (vacsina programovacich jazykov povazuje prvok[0] za prvy prvok, no v JavaScripte sa adresuje prvy prvok ako [1]). Takze ak chceme ulozit cislo 17 do prveho prvku, musime napisat MyArray[1]=17. Vidite, ze s poliami sa naraba skoro tak isto ako s obycajnymi premennymi. Ked chcete ulozit cislo 17 do vsetkych prvkov robi sa to tak:

for (var i=1;i<11;i++) MyArray[i]=17;

Prikaz for hovori pocitacu kolkokrat sa ma opakovat vykonavanie prikazu, ktory sa nachadza za nim. Slucka for zacina s i=1. Naprv pocitac vykona prikaz MyArray[1]=17. Potom dojde k zvyseniu hodnoty i o 1 a potom sa vykona prikaz MyArray[2]=17. I sa zvysuje dovtedy, kym nedosiahne hodnotu 10. Vyraz i<11 v slucke for musi byt pravdivy, takze ked i dosiahne hodnotu 11, vyraz nie je pravdivy a slucka for konci.

Teraz si ukazeme funkciu na inicializaciu poli:

function initArray()
{
this.length = initArray.arguments.length;
for (var i = 0; i < this.length; i++)
this[i+1] = initArray.arguments[i];
}

Nie je podstatne, ci chapete tuto funkciu, ale to ci ju viete vyuzit. Ked chcete vytvorit pole s 3 prvkami, staci napisat:

var MyArray= new initArray(17,18,19);

Cisla 17,18,19 su priradene prvkom 1,2,3. Tak isto mozete do pola vlozit textove retazce:

var heyho= new initArray("To","je","pole");

Zmiesane polia nie je problem vytvorit:

var Mixedup= new initArray(17,"hej",103);

Teraz si ukazeme priklad, ktory vypise obsah pola.

Zdrojovy text:

<script language="JavaScript">
<!--
function initArray()
{
this.length = initArray.arguments.length;
for (var i = 0; i < this.length; i++)
this[i+1] = initArray.arguments[i];
}

var Mixedup= new initArray(17,"hej",103);
document.write("Prvok c. 1: "+Mixedup[1]+"<br>");
document.write("Prvok c. 2: "+Mixedup[2]+"<br>");
document.write("Prvok c. 3: "+Mixedup[3]+"<br>");
// -->
</script>

5.1 Ako zmazat okno

V pripade, ze chcete vymazat obsah okna alebo ramca, zistite, ze sa to neda cez document.clear(). No vymazanie okna sa da realizovat takymto sposobom:

document.close();
document.open();
document.write("<P>");

5.2 Tlacitka vpred a vzad

Teraz si ukazeme skript, ktory bude umoznovat navigaciu medzi roznymi dokumentmi. Nejde o nic ine, ako o zname funkcie Back a Forward. Ked mate na stranke odkaz, ktory Vas dovedie na predchadzajucu stranku, je to nieco ine ako tlacitko v navigacnej liste Netscapu. Tlacitko v Netscape Vas hodi na predchadzajucu stranku v historii.

PRIKLAD

Zdrojovy text:

<html>
<body>
<FORM NAME="buttonbar">
<INPUT TYPE="button" VALUE="Spat" onClick="history.back()">
<INPUT TYPE="button" VALUE="JavaScript DESTINATION" onClick="location='index.html'">
<INPUT TYPE="button" VALUE="Dopredu" onCLick="history.forward()">
</FORM>
</body>
</html>

Takisto je mozne napisat history.go(-1) a history.go(1).

Predchadzajuca kapitola - Nasledujuca kapitola - Obsah