[JavaScript] Nowe okno

Kolejny artykuł z kategorii JavaScript, który tym razem poświęcony jest obiektowi Window i jego metodzie open. Dzięki obiektowi window możemy między innymi otwierać strony w nowych oknach i właśnie tym się zajmiemy w niniejszym artykule.

Obiekt Window

Obiekt ten reprezentuje okno przeglądarki lub aktywną kartę i znajduje się najwyżej w hierarchii obiektów JS. Przed obiektem window nie ma żadnego innego. Podobnie jak w innych językach każdy obiekt ma właściwości i metody, do których możemy się odwoływać. Do właściwości lub metody obiektu odwołujemy się poprzez zapis: object.method();. A teraz ciekawostka - do metod i właściwości obiektu Window możemy odwoływać się bezpośrednio, bez potrzeby poprzedzania ich nazwą obiektu. Np. do metody open nie musimy odwoływać się poprzez zapis Window.open();, a bezpośrednio open();. Oczywiście nie tworzymy instancji obiektu window, ponieważ jest ona tworzona automatycznie po otwarciu okna i zawsze możemy używać tego obiektu.

Metoda open

Metoda obiektu Window służąca do otwierania nowego okna przeglądarki. Metoda ta może przyjąć następujące opcjonalne argumenty:

  • url - adres strony, która ma zostać otwarta w nowym oknie;
  • target - nazwa dla przeglądanego kontekstu lub specjalna nazwa (_blank, _parent, _self, _top), domyślnie _self;
  • windowFeatures - ustawienia okna (string, w którym podajemy parametry w formacie parametr=wartość oddzielone od siebie przecinkami):
    • width (px) - szerokość okna
    • height (px) - wysokość okna
    • top (px) - margines górny
    • left (px) - margines lewy
    • scrollbars (yes, no, 0, 1) - czy wyświetlać scrollbary
    • location (yes, no, 0, 1) - czy wyświetlać pasek adresu
    • replace - czy nowa strona w istniejącym oknie ma być nadpisana w historii przeglądania, czy ma być dodana jako nowa pozycja? Podaj wartość true, jeśli chcesz zastąpić rekord w historii nowym, lub false, jeśli chcesz dodać nowy rekord.

Nasza funkcja

Jak widać otwieranie nowego okna przeglądarki przy użyciu metody open nie jest zbyt skomplikowane i sprowadza się do napisania jednej lini kodu: open('https://www.google.pl','_blank','width=500,height=500,left=50,top=50');

Pójdźmy dalej i napiszmy własną funkcje, dzięki której otwarcie nowego okna będzie jeszcze sprawniejsze. Funkcja będzie oczywiście korzystać z metody open i przyjmować będzie 4 argumenty: windowUrl, windowTarget, windowWidth, windowHeight. Pozycja nowego okna niech będzie ustawiona na stałe. Tworzymy zatem funkcję o nazwę newWindow:

function newWindow(windowUrl, windowTarget, windowWidth, windowHeight) {

 open(windowUrl, windowTarget, 'width=' + windowWidth + ', height=' + windowHeight + ', top=50, left=50');
 
 return false;

}

Przykładowe użycie

<a href="" onclick="return newWindow('http://localhost', '_blank', 200, 200);">otwórz okno</a>

Komentarze

Popular

[C++] Jak obliczyć pole i obwód trapezu?

[PHP] Jak pobrać adres strony?

[HTML] Jak wyśrodkować tekst?