Visit Mozilla.org

Kurs XUL:Możliwości okna

z Mozilla Developer Center, polskiego centrum programistów Mozilli.


Uwaga
UWAGA: Strona ta została zgłoszona do aktualizacji. Należy porównać jej zawartość z oryginalną wersją i poprawić wszelkie rozbieżności.

Do tej pory zobaczyliśmy niektóre możliwości okien. W tym artykule przyjrzymy się jeszcze innym.

[edytuj] Tworzenie kolejnego okna

Możesz stworzyć drugie okno swojej aplikacji w ten sam sposób, w jaki tworzyłeś pierwsze. Po prostu stwórz drugi plik XUL z kodem okna. Tak jak w języku HTML możesz użyć funkcji window.open() do otwarcia drugiego okna. Ta funkcja zwróci odnośnik do nowo otwartego okna. Możesz używać tego odnośnika, aby wywoływać funkcje w drugim oknie.

Funkcja otwarcia wymaga trzech argumentów. Pierwszy to adres URL pliku, który chcesz otworzyć. Kolejny to wewnętrzna nazwa okna. Ostatni to lista wyświetlanych flag. Flaga "chrome" jest ważna, gdy chcemy otworzyć okno jako plik chrome. Jeśli nie dodasz flagi chrome, to plik otworzy się jako zawartość okna przeglądarki.

Przykład:

var myWin = window.open("chrome://findfile/content/findfile.xul","findfile","chrome");

[edytuj] Określenie szerokości i wysokości

Powinieneś zauważyć, że kiedy tylko elementy zostały dodane do okna, to jego szerokość zmienia się tak, żeby zmieścić wszystkie elementy. Okno to naprawdę pudełko o ruchomych ściankach i nastawione domyślnie na orientację pionową. Możesz także podać dokładne wymiary bezpośrednio w znaczniku window. To oczywiście sprawi, że okno zostanie wyświetlone w tym właśnie rozmiarze. Jeśli jednak nie zdefiniujesz rozmiarów, wielkość okna będzie zdeterminowana przez jego wewnętrzne elementy.

<window
  id="findfile-window"
  title="Znajdź pliki"
  width="400"
  height="450"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

W tym przykładzie okno będzie miało 400 pikseli szerokości i 450 pikseli wysokości. Nawet, jeśli nie ma w nim wystarczająco dużo elementów, żeby wypełnić całą przestrzeń, okno nadal będzie miało takie wymiary i puste pole będzie widniało tam, gdzie brakuje elementów. Jeśli byłoby zbyt dużo elementów, okno będzie za małe, żeby pomieścić wszystkie elementy. Użytkownik będzie musiał zmienić rozmiar okna. Trzeba być uważnym, gdy definiuje się szerokość i wysokość, tak żeby okno nie było za małe albo za duże.

Zauważ, że musisz podać zarówno szerokość i wysokość. Jeśli zdefiniujesz tylko jeden wymiar, drugi będzie automatycznie ustawiony na zerową wartość. Aby okno samo się dopasowywało do elementów, pozostaw obydwa wymiary niezdefiniowane.

Wysokość i szerokość określają tylko początkową wielkość okna. Użytkownik może nadal zmieniać jego wymiary, jeśli oczywiście mu na to pozwolimy.

[edytuj] Inne możliwości okna

Poniższe flagi mogą być wpisywane w miejsce trzeciego argumentu funkcji window.open. Twój system operacyjny nie musi jednak wszystkich obsługiwać. Możesz także używać jakiejkolwiek z wcześniej zdefiniowanych flag, które można znaleźć w odnośnikach JavaScript. Możesz wyłączyć cechę przez przestawienie ją na "no", np. 'dialog=no'.

alwaysLowered 
Okno będzie zawsze pojawiało się za pozostałymi otwartymi oknami.
alwaysRaised 
Okno będzie zawsze pojawiało się ponad pozostałymi otwartymi oknami.
centerscreen 
Okno będzie zawsze pojawiało się w centrum ekranu.
dependent 
Okno będzie zawsze połączone z oknem, z którego zostało otwarte. Jeśli ruszymy oknem pierwotnym, to nowo otwarte też się odpowiednio przesunie.
dialog 
Okno dialogowe.
modal 
Okno dialogowe jest modalne. Okno, z którego zostało otwarte okno modalne (dialogowe), nie może odpowiadać dopóki nie zostanie zamknięte pochodne okno dialogowe.
resizable 
Użytkownik może zmieniać wymiary okna.

Zobacz także dokumentację DOM window.open()


W następnym artykule zajmiemy się otwieraniem podrzędnych okien dialogowych.