Objekt window

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).

Objekt window.location

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.)

Načtení nového dokumentu: 

window.location.href = "http://dusan.pc-slany.cz"; načte do okna mojí domovskou stránku.

Aktualizace stránky reload()

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. 

Zjištění adresy dokumentu (například načtením do proměnné adresa) 

adresa = location.href; 

S tou proměnnou adresa se dá pak dál pracovat. Zobrazit příklad.

Zjištění fragmentu adresy, například jméno domény: 

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". 

Z location se dají vytáhnout i jiné věci. Symbolický zápis je:

protocol://hostname:port/pathname?search#hash

Takže třeba location.protocol bude většinou obsahovat hodnotu "http:". 

Objekt window.history

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

Objekt window.navigator

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

Jméno aplikace prohlížeče

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". 

Verze prohlížeče

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)"

Verze prohlížeče jako jedno číslo

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í.

Kódové jméno

navigator.appCodeName

Všechny prohlížeče, pokud vím, vracejí řetězec "Mozilla".

Podpora Java appletů

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ětvení podle verze prohlížeče

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.

Další vlastnosti objektu navigator

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 window.screen

Objekt pro zjišťování vlasntostí obrazovky. Je podporován od čtvrté verze Netscape Navigatoru i Internet Exploreru (vzácná shoda).

Velikost plochy

screen.height
screen.width

Výška a šířka pracovní plochy grafického systému počítače.

Dostupná velikost plochy

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ů.

Barevná hloubka

screen.colorDepth

Počet bitů připadajících na jednu barvu. (Systémové nastavení obrazovky.)

Objekt frames

Objekt event

Objekt window.document