window (okno) je vrcholem hierarchie objektů, se kterými může JavaScript pracovat. Celý objektový model (kromě Date, Math, string) je vlastně seznam podobjektů objektu window. Každý objekt prohlížeče prostě má začínat textem window.
Pro zjednodušení se ale u podobjektů (vlastností) může to window vynechávat. Např. zápisy window.navigator
a navigator
jsou ekvivalentní.
Tento text obsahuje přehled vlastností (podobjektů) objektu window. Vizte též metody pro práci s oknem (objektem window).
Nebo jenom location
. Adresa načteného dokumentu. (Nepleťte si to s umístěním okna na ploše,
to je něco úplně jiného.)
window.location.href = "http://dusan.pc-slany.cz";
načte
do okna mojí domovskou stránku.
location.reload(false);
aktualizuje stránku, pokud byla změněna
location.reload(true);
natáhne stránku ze serveru, i když se
nezměnila
location.replace("http://www.seznam.cz");
natáhne stránku
Seznamu, ale nezařadí ji do historie.
adresa = location.href;
S tou proměnnou adresa se dá pak dál pracovat. Zobrazit příklad.
domena = location.hostname;
Pokud by adresa byla třeba http://www.seznam.cz/cokoliv/, tak by se do proměnné vložila hodnota "www.seznam.cz".
protocol://hostname:port/pathname?search#hash
Takže třeba location.protocol bude většinou obsahovat hodnotu "http:".
Nebo též jenom history
. Historie prohlížení stránek.
Dovoluje vracet se ke dříve zobrazeným stránkám. Obsahuje jenom pár metod, žádné vlastnosti ke čtení. Kvůli tomu jsou možnosti tohoto objektu velmi omezené. Pro spolehlivou složitější práci s historií je nutno ukládat informace do cookies. Tak teď k těm metodám objektu history:
history.back();
načte do prohlížeče minulou stránku. Je to
to samé, jako když uživatel klikne na tlačítko Zpět v prohlížeči.
history.back(3);
o tři stránky zpět. Jako trojí kliknutí.
Když se číslo neuvede (minulý příklad), je tam jako jednička.
history.forward(2);
o dvě stránky vpřed. Většinou je to
nepoužitelné, protože metoda forward je přístupná jedině když se předtím
zacouvalo.
history.go(-1);
je také zacouvání na minulou stránku. Číslo
v argumentu může být libovolné celé číslo. Metodou go() se dají nahradit
back() a forward().
Nejčastěji se používá jednoduché tlačítko, které simuluje tlačítko
Zpět z prohlížeče. <input type=button onclick="history.back()"
value="Zpět">
Zobrazit příklad.
Slouží ke zjišťování informací o typu a verzi prohlížeče. V praxi se tento objekt chová dosti chaoticky. Zobrazte si příklad.
navigator.appName
Vrací hodnotu "Microsoft Internet Explorer", nebo "Netscape" (Netscape Navigator i Mozilla5). Opera se hlásí jako to, co se v ní nastaví, třeba jako "Netscape".
navigator.appVersion
Například Internet Explorer 6 vrací řetězec: "4.0 (compatible; MSIE 6.0; Windows 98)". Netscape 4.7 vrací "4.7 [en] (Win98; I)"
parseInt(navigator.appVersion)
V praxi je potřeba zjistit často jenom první číslici označení verze. "Zaokrouhlení" se prování příkazem parseInt. Pro Internet Explorer 5 a 6 to vrací číslo 4, což většinou nevadí, protože ty verze jsou dobře kompatibilní.
navigator.appCodeName
Všechny prohlížeče, pokud vím, vracejí řetězec "Mozilla".
navigator.javaEnabled()
Vrací true, pokud je v prohlížeči nainstalována a povolena podpora Javy. (Internet Explorer 3 vrací stále false.) Není mi jasné použití.
Většina autorů používá window.navigator pro větvení programu: když je window.navigator Internet Explorer, provede se skript optimalizovaný pro IE, když je to Netscape, provede se skript pro Netscape. Zjednodušený příklad
if (navigator.appName == "Microsoft Internet Explorer"
&& parseInt(navigator.appVersion) >= 4)
{sekvence příkazů pro Explorer}
else
{příkazy pro jiné prohlížeče};
V praxi doporučuji takovéto větvení realizovat jinak, totiž zjišťovat
existenci jednotlivých potřebných objektů, nejčastěji jde o objekt document.all
,
který je jen v Ineternet Exploreru. Např.
if(document.all)
{program pro IE}
else
{program pro ostatní prohlížeče};
Tím se předejde kolizi skriptu s budoucími nebo méně běžnými prohlížeči. A je to kratší zápis.
Internet Explorer od 4. verze přidal k objektu navigator další vlastnosti, které ale nefungují v jiných prohlížečích (Netscape). Kvůli tomu jsou špatně použitelné v obecných skriptech.
vlastnost | popis | podpora |
---|---|---|
navigator.appMinorVersion | podverze prohlížeče | IE 4 |
navigator.cookieEnabled | povoleno ukládání cookies | IE 4, NN 6 |
navigator.cpuClass | typ procesoru klienta | IE 4 |
navigator.onLine | vrací false, pokud prohlížeč pracuje off-line | IE 4 |
navigator.platform | operační systém klienta | IE 4, NN 4 |
navigator.systemLanguage | původní jazyk operačního systému klienta | IE 4 |
navigator.userLanguage | nastavený jazyk operačního systému | IE 4 |
navigator.browserLanguage | jazyk prohlížeče | IE 5.5 |
Objekt pro zjišťování vlasntostí obrazovky. Je podporován od čtvrté verze Netscape Navigatoru i Internet Exploreru (vzácná shoda).
screen.height
screen.width
Výška a šířka pracovní plochy grafického systému počítače.
screen.availWidth
screen.availHeight
Prakticky jde o totéž jako width a height, pouze výška bývá poněkud menší, pokud je stále zobrazen hlavní panel systému (šedá lišta dole). Ve skriptech doporučuji používat raději tyto vlastnosti.
Šířka a výška prohlížeče a dokumentu jsou dostupné pomocí jiných objektů.
screen.colorDepth
Počet bitů připadajících na jednu barvu. (Systémové nastavení obrazovky.)