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
. Je to 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 nebo zkusit vlastost referer. 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φ v╛dy 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.)
Objekt frames umφ pracovat s rßmy. Zatφm to p°eskoΦφm, proto╛e m∞ to nebavφ.
Asi na to dßm vlastnφ strßnku.
Nejd∙le╛it∞j╣φ objekt, kter² popφ╣u zvlß╣╗.
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
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
window.offscreenBuffering kdy╛ se nastavφ true, okno se naΦte, p°epoΦφtß a teprve potom zobrazφ. Podpora od obou 4.