Objekt window

Objekty: location - history - navigator - screen - frames - event - document - Ostatní vlastnosti

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. Je to adresa načteného dokumentu. (Nepleťte si to s umístěním okna na obrazovce, to je něco úplně jiného.)

Načtení nového dokumentu: 

window.location.href = "https://yuhu.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 současnou stránku nezařadí do historie. Více o přesměrování stránek.

Nezařazení do historie přes replace() je lepší než location.href. Je to důležité kvůli tomu, aby nevznikal nekonečný zásek, kdy uživatel chce zpět, ale když jde zpět, tak ho to kvůli location.href zase hned javasriptem hodí dopředu.

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.

(Pozor, Opera 7 uřezává z adresy koncové lomítko.)

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:" (bez lomítek, ale s dvojtečkou). Případné proměnné jsou v uloženy v location.search i s otazníkem a dají se vyseparovat.

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 nebo zkusit vlastnost document.referrer. 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

Pokud potřebujete zjistit adresu předchozí stránky, někdy funguje vlastnost window.document.referrer. Ale fakt jenom někdy (když to klient posílá).

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

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í vždy 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 (a v Opeře). 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í vlastností 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 frames umí pracovat s rámy. Zatím to přeskočím, protože mě to nebaví.

Objekt event

 Asi na to dám vlastní stránku.

Objekt window.document

Nejdůležitější objekt, který popíšu zvlášť.

Vlastnosti objektu window (ostatní)

Stavová řádka

window.defaultStatus ovlivní text ve stavové řádce (šedá oblast vlevo dole, většinou je tam "Hotovo")

window.status je skoro totéž, ale vázáno dočasně na událost

Rámy a nová okna

window.closed vrací true, pokud je okno zavřeno (nešlape v IE 3)

window.opener vrací odkaz (ukazatel) na okno, které jej otevřelo

window.lenght vrací počet rámů v okně nebo rámu

window.name vrací jméno rámu nebo okna

window.parent vrací odkaz na nadřazený rám (okno)

window.self vrací sebe samo (prý se to někdy hodí)

window.top vrací odkaz na hierarchicky nejvyšší rám

Vykreslování

window.offscreenBuffering když se nastaví true, okno se načte, přepočítá a teprve potom zobrazí. Podpora od obou 4. Je to přesně opačné k tomu, co je dobré pro uživatele.

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Základy, objekty Příklady

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.