"); NoweOkienko.document.close(); NoweOkienko.focus(); }
JavaScript dla każdego
//  wróć   główna   dalej  //

Okna przeglądarki

open() toolbar menubar location personalbar status scrollbars directories resizable copyhistory height width left top close() focus()

JavaScript daje możliwość otwarcia dokumentu w nowym oknie przeglądarki. Z tą różnicą od normalnego otwierania (z SHIFT-em w Exploratorze), że nowe okno może mieć zadane parametry dotyczące wyglądu i położenia.

window.open("plik.html",'nazwaOkna','parametry')

Pierwszym parametrem jest adres pliku do otwarcia. Następnie można (ale nie trzeba) określić nazwę okna, która będzie pomocna przy ewentualnych odwołaniach do niego przy pomocy instrukcji skryptowych. Na końcu, między pojedynczymi cudzysłowami występują parametry samego okna. Wszystkie parametry należy oddzielać przecinkami. A teraz te parametry. Wszystkie, oprócz wielkości i położenia okna (które są w pikselach), przyjmują wartości logiczne yes/no.

toolbar pasek nawigacji,
menubar pasek menu,
location pasek lokalizacji strony,
personalbar pasek zakładek (w Navigatorze),
status pasek statusu,
resizable czy użytkownik może zmienić rozmiar okna,
scrollbars paski przewijania,
directories paski łącza,
copyhistory określa, czy historia okna przeglądarki ma być skopiowana do nowego okna,
fullscreen określa czy okno ma być w wersji pełny ekran, bez żadnych pasków (tylko IE 4.0+),
height wysokość okna,
width szerokość okna,
left odległość od lewej strony ekranu,
top odległość od górnej strony ekranu.

Dwa ostatnie parametry są dostępne w nowszych wersjach przeglądarek. Ostateczna, przykładowa instrukcja może mieć taką postać:

window.open("popup/dom.html",'JavaScript','toolbar=no,menubar=no,location=no,
personalbar=no,scrollbars=no,directories=no,status=no,resizable=no,
width=450,height=300')

Parametry nie istotne można opuścić. Trudność mogą sprawić odstępy między parametrami okna, które pomagają w czytelności zapisu. Netscape nieraz źle odczytuje spacje i nie stosuje się do zadeklarowanych właściwości. Polecenie otwarcia okna przeglądarki można także przyporządkować zmiennej. Tak, jak przedstawiłem poniżej. Łatwiej wtedy się odwołać do takiego okienka, jest ono wtedy jednoznacznie identyfikowane.

Kolejny ciekawy efekt można uzyskać poprzez otwieranie okna i decydowanie na bieżąco, co ma się w nim znaleźć. Można w otwartym oknie, zamiast jakiegoś pliku, stworzyć szybką stronę przy pomocy normalnego HTML-a. Całość wygląda np. tak:

NoweOkienko=window.open();
NoweOkienko.document.open(); //otwarcie dokumentu do edycji
NoweOkienko.document.write ("<HTML><HEAD><TITLE>Witaj</TITLE></HEAD><BODY>Witaj</BODY></HTML>");
NoweOkienko.document.close(); //zakonczenie sesji wpisywania dokumentu
NoweOkienko.focus(); //aby okno pojawilo sie na wierzchu

W pierwszej linijce definiujemy zmienną, jako nowe okienko. Podobnie jak wyżej, można zdefiniować właściwości nowego okienka, w miejscu, gdzie podaje się plik do wczytania pozostaje wolne miejsce, czyli pusty ''. Kolejne linijki wprowadzają kod strony. Wprowadzając kod strony należy pamiętać, że kolejne instrukcje kodu HTML nie mogą być rozdzielone znakiem końca linijki, czyli Enterem. Można wpisać kod w kilku instrukcjach, co będzie czytelniejsze. Na końcu nowe okienko jest przywoływane na wierzch.


Zobacz przykład

Skoro już jest metoda otwierająca okienka, można je także zamknąć. Służy to tego metoda close(). Wywołanie jej, jest analogiczne, jak w przypadku otwierania okienek:

window.close()

Taka instrukcja spróbuje zamknąć bierzące okno. Jeżeli nowe okno będzie wygenerowane dynamicznie, jak wyżej, to w celu zamknięcia należy użyć takiej instrukcji:

NoweOkienko.close()

Metoda zamykania okienek ma pewien mankament. Jeżeli użyjemy jej w zwykłym oknie przeglądarki, czyli takim, które nie zostało otwarte metodą open(), to przeglądarka zapyta o potwierdzenie tej czynności (gdyby "strona" próbowała zamknąć stronę bez zgody użytkownika). Jeżeli okno powstało przy pomocy metody open(), to zamknie się bez żadnym potwierdzeń.

Obydwie omówione metody zarówno open(), jak i close() mogą być używane bez obiektu window. Jest to związane z tym, że obiekt ten jest najważniejszy i często się go nie używa.


Do góry