utorok 8. novembra 2011

Zapamätajte si ID otvoreného okna (JavaScript)

Zrejme všetci veľmi dobre poznáte pop-up okná. Vo svete internetu obvykle pop-up okná predstavujú reklamné odkazy na iné stránky. Aj keď takéto okno môže mať aj iný význam. Ak je okno spustené z nejakého prihlasovacieho formulára, používa sa na zozbieranie informácií, ktoré následne prepošle nadradenému formuláru.

V prípade, že používateľ omylom zavrie nadradené okno skôr, zobrazí sa chyba, ako napríklad: "Access is denied." Takýmto chybám sa môžete vyhnúť, ak umožníte rodičovskému oknu uložiť potrebné informácie do okna potomka pri jeho otvorení. Ako iste viete, na otvorenie okna pomocou JavaScriptu môžete použiť nasledujúci kód:

open(url,"","some window attributes");

Ak chcete uložiť odkaz na toto okno, potrebujete priradiť výsledky príkazu do premennej, napríklad takto:

var window_id
window_id = window.open(url,"","some window attributes");

Pomocou premennej window_id môže rodičovské okno zatvoriť všetky okná svojich potomkov. Tu je krátky kurz, ktorý vám ukáže, ako to môžete urobiť. Najprv musíte zachytiť onunload() udalosť v elemente body:

<body onunload='onBodyUnload()'>

Potom uložte windows_id, ako sme opísali vyššie. Nakoniec v JavaScripte umiestnenom vo funkcii onunload() umiestnite nasledujúci kód:

function onBodyUnload()
{
   if (!window_id.closed) {
      window_id.close();
   }
}