Džavascript - online verze
obsah1. díl2. díl 3. díl4. díl5. díl6. díl7. díl8. díl

III.
Otvárame okná...

     Dnešná časť seriálu bude venovaná, ako sa dá už aj z nadpisu usúdiť, oknám a ich manipulácii pomocou JavaScriptu. Pri surfovaní po Internete sa veľmi často stretávame s takými webovskými stránkami, ktoré po svojom načítaní otvárajú nové okná nášho prehliadača stránok a do nich nahrávajú iné stránky. Tento prvok - otváranie nových okien - sa dá použiť napr. na zjednodušenie navigácie medzi stránkami a pod.

Okná v HTML

     Predtým než sa naučíme používať JavaScript na otváranie okien, si ukážeme ako je možné otvoriť okno s použitím bežných príkazov jazyka HTML. Párovú značku (tag) <A HREF=""></A> už určite dobre poznáte. Ak do tohto tagu pridáme aj parameter TARGET="meno_okna", po odkliknutí na takýto odkaz sa otvorí nové okno a nahrá sa do neho určená stránka.

PRÍKLAD 3.1 - ukážka otvorenia jednoduchého okna

<html>
<body>
Klikni <a href="file:///C:/" target="nove_okno">tu</a> a otvori sa nove okno.
</body>
</html>

     V prípade, že už máme otvorené okno s daným menom a odklikneme na takýto odkaz, k otvoreniu nového okna nedôjde, len sa zamení obsah pôvodného okna. Iná situácia môže nastať v prípade, ak naša stránka obsahuje rámce (frames). Ak sa niektorý z našich rámcov volá rovnako ako naše okno, tak potom sa stanovená stránka nahrá do neho...

Okná v JavaScripte

     Určíte uznáte, že i keď práca s oknami v HTML je veľmi ľahká, prináša so sebou niekoľko obmedzení. Jedno z hlavných obmedzení je, že nemáme možnosť definovať vzhľad a veľkosť okna, ktoré chceme, aby sa otvorilo. Našťastie je tu JavaScript pomocou ktorého sa to dá...
     Na otváranie okien nám v JavaScripte slúži funkcia window.open(). Pomocou nej nie je problém otvoriť okno s nami definovanou veľkosťou a vzhlaďom. Táto funkcia sa skladá z niekoľkých častí:

window.open("URL","meno_okna","parametre_okna");

URL (napr. http://internet.tlp.cz)
adresa stránky, ktorá sa má nahrať do nového okna (ak nevložíme adresu a necháme "" prázdne, otvorí sa prázdne okno)

meno_okna (napr. okienko)
- názov okna, do ktorého sa má nahrať stránka (ak okno s takým názvom neexistuje, otvorí sa nové okno)

parametre okna (napr. toolbar=no,directories=no,menubar=no)
- zadávajú sa vedľa seba a oddelené su čiarkou. Udávajú vzhľad nového okna:

Parameter

toolbar
location
directories
status
menubar
scrollbars
resizable
copyhistory

width
height
top
left

  Hodnota

yes / no
yes / no
yes / no
yes / no
yes / no
yes / no
yes / no
yes / no

číslo
číslo
číslo
číslo

  Funkcia

má sa zobraziť toolbar?
riadok s adresou dokumentu?
políčka s vybratými adresami?
stavový riadok?
hlavné menu?
skrolovacie šipky?
schopnosť meniť veľkosť okna
má sa preniesť história stránok

šírka nového okna
výška nového okna
x-ová súradnica nového okna
y-ová súradnica nového okna

PRÍKLAD 3.2 - otvorenie okna o veľkosti 300x100

<html>
<head>
<title>Okna v JavaScripte</title>
<script>
<!--
  window.open("file:///C:/","druhe_okno","width=300,height=100,menubar=yes");
// -->
</script>
</head>
<body>
</body>
</html>

     V tomto príklade hádam nie je nič ťažké na pochopenie. Po načítaní skriptu, prehliadač stránok otvorí nové okno, do ktorého zobrazí obsah stránky, ktorá sa nachádza na adrese: file:///C:/. Keďže sa jedná o lokálnu adresu, zobrazí sa v okne výpis hlavného adresára disku C.

Fotoalbum alebo prezentačné okná v praxi

     Ako je už pomaly zvykom, i na záver tejto časti seriálu si uvedieme jeden praktický príklad, na ktorom je možné demonštrovať otváranie okien. V tomto príklade pôjde o zobrazenie fotografie v plnej veľkosti po odkliknutí na jej zmenšenú podobu. Môžete si všimnúť, že novootvorené okno má presne stanovené rozmery a naviac obrázok je v ňom vycentrovaný...

PRÍKLAD 3.3 - Fotoalbum s jednou zväčšovacou fotografiou

pr3-3.html

<html>
<head>
<title>Fotoalbum</title>
<script>
<!--
function otvor_okno()
{
  window.open("pr3-3-1.html","okienko","width=386,height=274,top=10,left=10");
}
// -->
</script>
</head>
<body>
<a href="#" onClick="otvor_okno();">
<img src="fotkamala.jpg" border="0" alt="" width="100" height="70"></a>
</body>
</html>

pr3-3-1.html

<html>
<head>
<title>Fotografia</title>
</head>
<body bgcolor="white" topmargin="8" leftmargin="8">
<img src="fotkavelka.jpg" border="1" alt="" width="368" height="257">
</body>
</html>

     V uvedenom príklade sa vyskytuje nový prvok. Je ním parameter onClick, ktorý sa nachádza v súbore pr3-3.html vo vnútri tagu <A HREF=""></a>. Tento parameter nazývame tiež definíciou udalosti (zoznam ostatných udalostí uvedieme nabudúce). Udáva, aká funkcia má byť vykonaná, ak dôjde ku kliknutiu na daný odkaz. V našom prípade sa vyvolá funkcia otvor_okno(). Táto funkcia vyvolá už spomenutú funkciu window.open(), ktorá na základe vstupných parametrov otvorí nové okno a do neho načíta stránku pr3-3-1.html.
     Ak by ste chceli mať na stránke viac takých obrázkov, na ktoré by sa dalo kliknúť a otvorili by sa nové okná, je potrebné vytvoriť ďalšie funkcie v skripte (otvor_okno2(), otvor_okno3()...) a potom následne do tagov prislúchajúcim tým obrázkom <A HREF> pridať daný parameter onClick...

Close the windows, close the gates

     Dosť často sa stáva, že tvorca stránok to s otváraním nových okien preženie a potom to na návštevníkovi zanecháva negatívny dojem. Ako príklad uvediem tzv. čierne stránky, stránky s warez náplňou a pod., ktoré ostošesť otvárajú nové okná s reklamou na svojich sponzorov. Po nejakom tom čase to dokáže ísť poriadne na nervy (veď komu sa chce prepínať medzi toľkými oknami a zatvárať tie prebytočné?!). Preto je pri navrhovaní stránok potrebné si vždy dobre zvážiť, že či prípadné otvorenie nového okna nebude na návštevníka našej stránky pôsobiť skôr rušivo...

Rastislav Škultéty
webmaster@javascript.sk

POZNÁMKA:

     Všetky skripty, ktoré boli, sú a budú v seriáli o JavaScripte uverejňované, boli poriadne odskúšané pod štvorkovými verziami prehliadačov stránok Netscape Navigatorom a Microsoft Internet Explorerom. Pod nižšími verziami prehliadačov skripty nemusia pracovať správne!



NAHORU
grafické zpracování (C) 1999 Jakub Holý, časopis Internet, Trade & Leisure Publications Praha
obsah, online zpracování (C) 1998 - 1999 Rastislav Škultéty