P°φΦinou vzniku JavaScriptu byl po₧adavek na zv²Üenφ u₧ivatelskΘho komfortu pro u₧ivatele strßnek. JavaScript m∙₧eme pou₧φt nap°φklad p°i vstupnφ kontrole dat vklßdan²ch do formulß°∙ jeÜt∞ p°edtφm, ne₧ jsou vypln∞nΘ ·daje odeslßny na server. Kontrolu ·daj∙ nemusφ provßd∞t server a v²sledkem je rychlejÜφ odezva pro u₧ivatele. JavaScript ve sv²ch prvnφch verzφch navφc umo₧nil i vytvß°enφ interaktivn∞jÜφho u₧ivatelskΘho rozhranφ strßnek. Strßnka mohla reagovat na r∙znΘ udßlosti vyvolanΘ u₧ivatelem a nap°φklad dopl≥ovat pole do formulß°∙ nebo vyvolat otev°enφ novΘho okna prohlφ₧eΦe. Tyto mo₧nosti pak dßle rozÜφ°il nov² koncept dynamickΘho HTML.
My se nynφ struΦn∞ seznßmφme se zßklady programovßnφ v JavaScriptu. PotΘ si ukß₧eme, jak se skripty (tak se °φkß program∙m v JavaScriptu) za°azujφ do HTML strßnky. V poslednφ Φßsti se podφvßme na to, jak jsou v JavaScriptu p°φstupnΘ jednotlivΘ komponenty prohlφ₧eΦe a strßnky pomocφ objektovΘho modelu dokumentu (DOM).
Ka₧d² program se sklßdß z p°φkaz∙, kterΘ se provßdφ sekvenΦn∞ v po°adφ, v jakΘm jsou zapsßny. jednotlivΘ p°φkazy se od sebe odd∞lujφ st°ednφkem a je dobr²m zvykem psßt ka₧d² p°φkaz na samostatnou °ßdku -- program je pak mnohem p°ehledn∞jÜφ.
V programech m∙₧eme pou₧φvat prom∞nnΘ, kterΘ slou₧φ k ulo₧enφ r∙zn²ch
hodnot podle naÜich pot°eb. Prom∞nnΘ nenφ pot°eba p°edem deklarovat, ale
je to lepÜφ. Deklarace prom∞nnΘ se uvozuje klφΦov²m slovem
var
:
var Pocitadlo = 0; var PocetMesicu = 12; var i, j; var Pozdrav = "Ahoj Karle!"; var Nalezeno = false;V naÜem p°φklad∞ jsme deklarovali Üest prom∞nn²ch. Prvnφ dv∞ z nich jsme ji₧ p°φmo inicializovali poΦßteΦnφ hodnotou. Nßzvy prom∞nn²ch by se m∞ly sklßdat z pφsmen, Φφslic a podt₧φtek. Prvnφ pφsmeno nßzvu p°itom nesmφ b²t Φφslice. JavaScript rozliÜuje velikost pφsmen v nßzvech. Prom∞nnΘ
Pocitadlo
a POCITADLO
jsou tedy dv∞ r∙znΘ.
Prom∞nnΘ mohou obsahovat jeden ze t°φ typ∙ dat -- Φφslo, textov²
°et∞zec a logickß hodnota. Logickß hodnota odpovφdajφcφ pravd∞ se
jmenuje true
. Nepravd∞ odpovφdß hodnota false
.
Mezi nejjednoduÜÜφ p°φkazy pat°φ p°i°azovacφ p°φkaz. Jeho tvar
prom∞nnß = v²razDo prom∞nnΘ se p°i°adφ hodnota v²razu uvedenΘho na pravΘ stran∞. V²raz m∙₧e obsahovat prom∞nnΘ a konstanty r∙zn∞ pospojovanΘ pomocφ operßtor∙.
K dispozic jsou samoz°ejm∞ b∞₧nΘ operßtory jako '+' (sΦφtßnφ), '-' (odΦφtßnφ), '*' (nßsobenφ) a '/' (d∞lenφ).
delta = y - x; obvod = 2 * 3.14 * polomer; palce = centimetry / 2.54;Pokud chceme obsah n∞jakΘ promm∞nnΘ zv²Üit nebo snφ₧it o jedniΦku, m∙₧eme pou₧φt operßtor '++' nebo '--'. Nßsledujφcφ dva p°φkazy jsou ekvivalentnφ:
x = x + 1; x++;ZestruΦn∞nφ zßpisu n∞kter²ch operacφ je mo₧nΘ i pomocφ dalÜφch "vychytßvek". JavaScript obsahuje i operßtory '+=', '-=', '*=' a '/='. Jejich v²znam bude z°ejm² z ukßzky, kterß op∞t obsahuje dva p°φkazy, kterΘ majφ stejn² efekt.
PoziceX = PoziceX + KrokX; PoziceX += KrokX;Pokud zapisujeme logickΘ v²razy, m∙₧eme pou₧φt n∞kolik relaΦnφch a logick²ch operßtor∙. Pro porovnßnφ je v JavaScriptu operßtor '=='. Hodnota v²razu
(3+2)==5
je tedy true
. Pokud
chceme testovat nerovnost, pou₧ijeme operßtor '!='.
Pro porovnßvßnφ hodnot mßme k dispozici relaΦnφ operßtory '<', '>', '<=' a '>='.
LogickΘ v²razy m∙₧eme navzßjem spojovat pomocφ logick²ch spojek '&&' (a zßrove≥) a '||' (nebo). Negaci v²razu provedeme zapsßnφm vyk°iΦnφku '!' p°ed jeho zaΦßtek.
JeVIntervalu = (x >= DolniMez) && (x <= HorniMez);B∞h programu m∙₧eme ovliv≥ovat pomocφ podmφn∞n²ch p°φkaz∙. Jejich tvar je nßsledujφcφ:
if (podmφnka) { p°φkazy, kterΘ se provedou p°i spln∞nφ podmφnky } else { p°φkazy, kterΘ se provedou p°i nespln∞nφ podmφnky }╚ßst
else
je nepovinnß a nemusφ se tedy pou₧φvat.
podmφnka je libovoln² v²raz, jeho₧ v²sledek je
true
nebo false
.
if (hodina > 12) { hlaseni = "DobrΘ odpoledne!"; } else { hlaseni = "DobrΘ rßno!"; }Pokud se mß podmφn∞n∞ provΘst pouze jeden p°φkaz, nemusφme jej uzavφrat do slo₧en²ch zßvorek:
if (hodina > 12) hlaseni = "DobrΘ odpoledne!" else hlaseni = "DobrΘ rßno!";Pokud pot°ebujeme n∞kolik p°φkaz∙ provΘst opakovan∞, m∙₧eme s v²hodou pou₧φt cykl∙. JavaScript nabφzφ n∞kolik typ∙ cykl∙, my se seznßmφme s cyklem
for
a while
.
Cyklus for
mß tvar:
for (poΦßteΦnφ inicializace; podmφnka; inkrementace) { p°φkazy }PraktickΘ pou₧itφ si ukß₧eme na programu, kter² spoΦφtß hodnotu faktorißlu z Φφsla
n
:
var i, faktorial = 1; for (i=1; i<=n; i++) { faktorial *= i; }Cyklus
while
mß syntaxi jeÜt∞ jednoduÜÜφ:
while (podmφnka) { p°φkazy }P°φkazy uvedenΘ v t∞le cyklu se provßdφ, dokud je spln∞na podmφnka. Musφme si tedy dßt pozor na to, aby podmφnka zßvisela na n∞jakΘ prom∞nnΘ, kterou m∞nφme uvnit° cyklu. Jinak se nßm m∙₧e stßt, ₧e zφskßme nekoneΦnou smyΦku.
Velice u₧iteΦnou pom∙cku nabφzφ JavaScript v mo₧nosti definovat si vlastnφ funkce. Funkce pou₧ijeme v p°φpadech, kdy pot°ebujeme v programu na r∙zn²ch mφstech provßd∞t stejnΘ Φinnosti. Pou₧itφm funkcφ k≤d programu zkrßtφme, zp°ehlednφme a p∙jde snadn∞ji modifikovat. Definujme funkci pro v²poΦet faktorißlu. Funkce bude navφc rekurzivnφ, proto₧e bude volat sama sebe:
function Faktorial(n) { if ((n==1) || (n==0)) return 1 else return (n * Faktorial(n-1)); }Takto definovanou funkci m∙₧eme pou₧φt pro vypsßnφ tabulky faktorißl∙ od 1 do 10:
var i; for (i=1; i<=10; i++) { document.writeln(i, "! = ", Faktorial(n)); }Jako v²sledek dostaneme tabulku:
1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 10! = 3628800Funkce vracφ hodnotu, kterß je uvedena za slovem
return
.
Funkce nemusφ vracet ₧ßdnou hodnotu, pak ji pou₧φvßme jako samostatn²
p°φkaz a ne jako Φßst v²razu.
Funkce m∙₧e mφt i vφce parametr∙, odd∞lujφ se pak Φßrkou.
V poslednφ ukßzce se objevila konstrukce
document.writeln
. Tento zßpis specifikuje vyvolßnφ metody
writeln
u objektu document
. Popis objekt∙
vß₧φcφch se k prohlφ₧eΦi a strßnce uvedeme na konci tohoto Φlßnku.
JavaScript vÜak obsahuje i n∞kolik objekt∙, kterΘ s HTML v∙bec
nesouvisφ. Jednß se objekty String
, Date
a
Math
. Ty umo₧≥ujφ prßci s °etezci, s ·daji o datu a Φase a
s matematick²mi funkcemi.
ObvodKruhu = 2 * Math.PI * Polomer; c = Math.sqrt(a*a+b*b); // d∙sledek Pythagorovy v∞tyDruhß °ßdka obsahuje ukßzku komentß°e. VÜe za znaky '//' a₧ do konce °ßdky se ignoruje a pova₧uje se pouze za komentß°, kter² vysv∞tluje v²znam programu.
SCRIPT
.
SCRIPT
. Skript m∙₧eme vlo₧it do strßnky bu∩ p°φmo nebo
uvΘst pouze odkaz na URL, kterΘ obsahuje program v p°φsluÜnΘm
skriptovacφm jazyce. Pro urΦenφ typu skriptovacφ jazyka bychom m∞li
pou₧φt atribut LANGUAGE
. Vlo₧enφ jednoduchΘho skriptu do
strßnky m∙₧e vypadat nap°. takto:
<SCRIPT LANGUAGE="JavaScript"> window.status = "Prßv∞ si prohlφ₧φte moji strßnku." </SCRIPT>V²Üe uveden² skript zobrazφ zadan² text ve stavovΘ °ßdce. UrΦenφ druhu skriptovacφho jazyka pomocφ atributu
LANGUAGE
je d∙le₧itΘ,
proto₧e de HTML lze vklßdat i skripty zapsanΘ v jin²ch jazycφch jako je
VBScript nebo Tcl.
Druhou mo₧nostφ je vlo₧it skript pouze pomocφ odkazu. I v tomto
p°φpad∞ vÜak musφme pou₧φt ukonΦovacφ tag </SCRIPT>
:
<SCRIPT LANGUAGE="JavaScript" SRC="http://netscape.com/exmpl/demo.js"> </SCRIPT>Skripty mohou b²t na strßnce umφst∞ny kdekoliv -- v zßhlavφ (
HEAD
) i v t∞le dokumentu (BODY
). Do zßhlavφ
bychom m∞li umφstit vÜe, co musφ b²t vykonßno jeÜt∞ d°φv∞, ne₧ zaΦne
u₧ivatel pracovat s dokumentem -- nap°. definice funkcφ, kterΘ se
vyvolßvajφ r∙zn²mi udßlostmi.
P°i vklßdßnφ skript∙ je rovn∞₧ vhodnΘ jejich obsah skr²t p°ed starÜφmi prohlφ₧eΦi pomocφ triku s komentß°i:
<HEAD> <TITLE>Strßnka, kterß vßm popφÜe stavovou °ßdku</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- window.status = "Prßv∞ si prohlφ₧φte moji strßnku." // --> </SCRIPT> </HEAD>P°ed ukonΦenφm HTML komentß°e
-->
pou₧ijeme dv∞ lomφtka,
aby se interpretr JavaScriptu nepokouÜel konec HTML komentß°e pova₧ovat
za Φßst skriptu. To mß ve zvyku zejmΘna Netscape Navigator.
Pokud pou₧φvßme skripty pro dynamickΘ vygenerovßnφ Φßsti dokumentu,
m∙₧eme pou₧φt element NOSCRIPT
a umφstit do n∞j
alternativnφ text pro starÜφ prohlφ₧eΦe, kterΘ nepodporujφ skripty:
<BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- document.write("Pou₧φvßte prohlφ₧eΦ " + navigator.appName + " " + navigator.appVersion) // --> </SCRIPT> <NOSCRIPT> Pou₧φvßte prohlφ₧eΦ, kter² nepodporuje JavaScript. </NOSCRIPT> </BODY>Z p°edchozφ ukßzky vidφme, ₧e text vygenerovan² programem v JavaScriptu se stßvß souΦßstφ strßnky. P°φkazy uvedenΘ uvnit° elementu
SCRIPT
se provedou pouze jednou p°i naΦφtßnφ strßnky.
Aby byly naÜe dokumenty opravdu interaktivnφ, je pot°eba, aby provedenφ urΦitΘ Φßsti skriptu bylo vyvolßno udßlostφ, kterou zp∙sobil u₧ivatel. Udßlostφ m∙₧e b²t p°ejetφ myÜφ p°es urΦit² element, kliknutφ myÜφ apod.
U ka₧dΘho elementu m∙₧eme pou₧φt n∞kolik nov²ch atribut∙, kterΘ odpovφdajφ jednotliv²m udßlostem. Jako jejich hodnota se uvßdφ p°φkazy, kterΘ se po vyvolßnφ danΘ udßlosti majφ provΘst -- tzv. obsluha udßlosti.
Obecn∞ m∙₧eme pou₧itφ udßlosti u n∞jakΘho elementu zapsat jako:
<TAG udßlost=obsluha udßlosti>
Udßlost | Popis |
---|---|
onLoad | Udßlost je vyvolßna po nata₧enφ dokumentu do okna
prohlφ₧eΦe nebo do vÜech rßm∙ v rßmci jednoho
FRAMESET . Atribut m∙₧e b²t pou₧it u element∙
BODY a FRAMESET .
|
onUnLoad | Udßlost je vyvolßna po odstran∞nφ dokumentu
z okna nebo rßmu. Atribut m∙₧e b²t pou₧it
s elementy BODY a FRAMESET .
|
onClick | Udßlost je vyvolßna po kliknutφ myÜφ na element. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onDblClick | Udßlost je vyvolßna po dvojitΘm kliknutφ myÜφ na element. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onMouseDown | Udßlost je vyvolßna po stisknutφ tlaΦφtka myÜi nad elementem. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onMouseUp | Udßlost je vyvolßna po uvoln∞nφ tlaΦφtka myÜi nad elementem. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onMouseOver | Udßlost je vyvolßna p°i p°esunutφ myÜi nad element. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onMouseMove | Udßlost je vyvolßna p°i pohybu myÜi nad elementem. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onMouseOut | Udßlost je vyvolßna po odsunutφ myÜi z elementu. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onFocus | Udßlost je vyvolßna v okam₧iku, kdy je element
aktivovßn myÜφ nebo pomocφ tabulßtoru. Atribut je
mo₧no pou₧φt u element∙ LABEL , INPUT ,
SELECT , TEXTAREA a BUTTON .
|
onBlur | Udßlost je vyvolßna v okam₧iku, kdy element
p°estßvß b²t aktivnφ. Atribut je mo₧no pou₧φt
u element∙ LABEL , INPUT ,
SELECT , TEXTAREA
a BUTTON .
|
onKeyPress | Udßlost je vyvolßna po stisku a nßslednΘm uvoln∞nφ tlaΦφtka na klßvesnici. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onKeyDown | Udßlost je vyvolßna po stisku tlaΦφtka na klßvesnici. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onKeyUp | Udßlost je vyvolßna po uvoln∞nφ tlaΦφtka na klßvesnici. Atribut m∙₧e b²t pou₧it u v∞tÜiny element∙. |
onSubmit | Udßlost je vyvolßna p°i odesφlßnφ formulß°e.
Atribut m∙₧e b²t pou₧it pouze u elementu
FORM .
|
onReset | Udßlost je vyvolßna po vynulovßnφ formulß°e.
Atribut m∙₧e b²t pou₧it pouze u elementu
FORM .
|
onSelect | Udßlost je vyvolßna po oznaΦenφ textu ve vstupnφm
poli. Atribut m∙₧e b²t pou₧it u element∙
INPUT
a TEXTAREA .
|
onChange | Udßlost je vyvolßna pokud se zm∞nila hodnota
vstupnφho pole formulß°e. Atribut m∙₧e b²t pou₧it
u element∙ INPUT , SELECT a TEXTAREA .
|
P°ehled udßlostφ, kterΘ m∙₧eme pou₧φt, uvßdφ tabulka. Ukß₧eme si Φßst strßnky, kde se po najetφ myÜφ nad odkaz ve stavovΘ °ßdce prohlφ₧eΦe objevφ vysv∞tlujφcφ text:
O rozvoj Webu se starß konsorcium <A HREF="http://www.w3.org" onMouseOver="window.status='Kliknutφm na odkaz se dostanete' + ' na domovskou strßnku konsorcia W3C'"> W3C</A>Jako obsluhu udßlosti bychom m∞li pou₧φvat vyvolßnφ d°φve definovanΘ funkce, kterß zajistφ vÜechny pot°ebnΘ akce. Toto °eÜenφ nßm usnadnφ pozd∞jÜφ zm∞ny v chovßnφ obsluhy udßlosti a zp°ehlednφ zßpis strßnky v HTML.
window |--location |--frames |--history |--navigator |--event |--screen +--document |--links |--anchors |--images |--filters |--forms |--applets |--embeds |--plugins |--frames |--scripts |--all |--selection |--styleSheets +--body |
Zßkladnφm objektem je window
, p°es kter² jsou dostupnΘ
vÜechny dalÜφ objekty. Nejd∙le₧it∞jÜφm objektem je
document
, kter² v sob∞ zahrnuje vÜechny objekty a
vlastnosti vztahujφcφ se k aktußlnφmu dokumentu. Na jednotlivΘ objekty v
hierarchii (viz obrßzek 5) se odvolßvßme pomocφ teΦkovΘ notace:
window.screen
, window.document
,
window.document.body
.
Proto₧e jsou vÜechny objekty potomky objektu window
,
m∙₧e tento vynechßvat. Zkrßcen∞ m∙₧eme psßt window.screen
,
document
, document.body
.
Na dalÜφch ni₧Üφch ·rovnφch v objektovΘ hierarchii mohou b²t bu∩
dalÜφ objekty anebo p°φmo vlastnosti a metody jednotliv²ch objekt∙. VÜe
si ukß₧eme na p°φklad∞. Objekt document.all
obsahuje
vÜechny elementy obsa₧enΘ v dokumentu. P°φstupnΘ jsou pomocφ svΘho jmΘna
definovanΘho atributem ID
:
<H1 ID=Nadpis>Pokusn² nadpis</H1> <P ID=Odstavec1>Text odstavce te∩ nenφ d∙le₧it²Nynφ m∙₧eme ve skriptech na strßnce pou₧φvat objekty
document.all.Nadpis
a document.all.Odstavec1
,
kterΘ zastupujφ element pro nadpis a odstavec. U t∞chto objekt∙ mßme k
dispozici vlastnosti, kterΘ odpovφdajφ atribut∙m pou₧iteln²m u
odpovφdajφcφch element∙. Pomocφ vlastnosti
document.all.Nadpis.align
m∙₧eme m∞nit zp∙sob zarovnßnφ
nadpisu. Nßsledujφcφ ukßzka obsahuje skript, kter² po kliknutφ myÜφ na
nadpis zm∞nφ jeho zarovnßnφ zleva doprost°ed. Jde o prvnφ ukßzku
skuteΦnΘho dynamickΘho HTML v dneÜnφm tΘmatu t²dne.
<HTML> <HEAD> <TITLE>Ukßzka dynamickΘho HTML 1.</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangeAlign() { document.all.Nadpis.align = "center"; } // --> </SCRIPT> </HEAD> <BODY> <H1 ID=Nadpis ALIGN=LEFT onClick="ChangeAlign()">Pokusn² nadpis</H1> <P ID=Odstavec1>Text odstavce te∩ nenφ d∙le₧it² </BODY> </HTML>Z principu prßce s dynamick²m HTML vidφme, ₧e strßnka bez problΘm∙ bude pracovat i s prohlφ₧eΦi, kterΘ dynamickΘ HTML nepodporujφ. Jen se po kliknutφ myÜφ na nadpis nic nestane, proto₧e tyto prohlφ₧eΦe neum∞jφ dynamicky m∞nit obsah strßnky po jejφm zobrazenφ. To vÜak nijak dramaticky nesnφ₧φ informaΦnφ hodnotu strßnky.
U objekt∙, kterΘ odpovφdajφ element∙m strßnky, mßme k dispozici
vlastnost i objekt style
. Pomocφ vlastnosti
style
m∙₧eme p°istupovat k definici stylu elementu stejn∞
jako pomocφ atributu STYLE
. Nßsledujφcφ k≤d by zm∞nil barvu
a velikost nadpisu:
document.all.Nadpis.style = "color: red; font-size: 30px";ZajφmavΘ je, ₧e
style
je zßrove≥ vlastnost i cel² objekt.
Vlastnosti objektu style
odpovφdajφ jednotliv²m vlastnostem
styl∙. Poslednφ efekt tedy m∙₧eme dosßhnout i nßsledujφcφm k≤dem:
document.all.Nadpis.style.color = "red"; document.all.Nadpis.style.fontSize = "30px"Zajφmavß je vlastnost
innerText
. Ta obsahuje text uvnit°
elementu. Zßpisem do tΘto vlastnosti m∙₧eme text zm∞nit. Zkusme
nßsledujφcφ legrßcku:
<HTML> <HEAD> <TITLE>Ukßzka dynamickΘho HTML 2.</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangeText() { document.all.Nadpis.innerText = "Poslouchßte m∞ p∞kn∞!!!"; document.all.Nadpis.style.color = "blue"; document.all.Nadpis.style.fontSize = "50px"; } // --> </SCRIPT> </HEAD> <BODY> <H1 ID=Nadpis onClick="ChangeText()"> Klikn∞te na tenhle nadpis a uvidφte, co se stane.</H1> </BODY> </HTML>Dokonce lze m∞nit cel² element, ne jen jeho obsah. Pou₧ijeme vlastnost
outerHTML
a p°edchozφ ukßzku upravφme tak, aby se po
kliknutφ mφsto nadpisu objevil obrßzek:
<HTML> <HEAD> <TITLE>Ukßzka dynamickΘho HTML 3.</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangeText() { document.all.Nadpis.outerHTML = "<IMG SRC=astro.gif>" + "<P>Krom∞ obrßzku p°idßm i krßtk² odstavec textu."; } // --> </SCRIPT> </HEAD> <BODY> <H1 ID=Nadpis onClick="ChangeText()"> Klikn∞te na tenhle nadpis a uvidφte, co se stane.</H1> </BODY> </HTML>V objektovΘm modelu nalezneme pod objektem
document
i
kolekci styleSheets
, kterß obsahuje jednotlivΘ styly
p°ipojenΘ ke strßnce. Pomocφ jejφ metody
addRule(selektor, deklarace,
index)
m∙₧eme do stylu p°idßvat novß pravidla.
Nßsledujφcφ dokument se po kliknutφ myÜφ cel² vycentruje.
<HTML> <HEAD> <TITLE>Ukßzka dynamickΘho HTML 4.</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function ChangeDocumentAlign() { document.styleSheets[0].addRule("BODY", "text-align: center", 0); } // --> </SCRIPT> <STYLE></STYLE> </HEAD> <BODY onClick="ChangeDocumentAlign()"> <H1>Nadpis</H1> <P>A n∞kolik odstavc∙ textu </BODY> </HTML>Abychom mohli do kolekce styl∙ n∞co p°idßvat, musφ kolekce existovat. Proto strßnka obsahuje prßzdn² element
STYLE
, kter² vytvo°φ
kolekci styleSheets
s jednφm prvkem.
Bohu₧el zde nem∙₧eme rozebrat celou objektovou hierarchii. Zmφnφme se
vÜak jeÜt∞ alespo≥ o n∞kolika zajφmavostech. Adresa dokumentu, kter² je
prßv∞ zobrazovßn, je p°φstupnß p°es objekt location
. Pokud
tedy chceme p°φmo skriptem zm∞nit strßnku, kterß se prßv∞ zobrazuje,
m∙₧eme pou₧φt p°φkaz location="http://n∞kde.jinde.cz"
.
Pokud mßme strßnku rozd∞lenou na rßmy, m∙₧eme z jakΘhokoliv rßmu
m∞nit strßnku zobrazenou v ostatnφch rßmech. StaΦφ novou adresu zapsat
do parent.jmΘno_rßmu.location
. Tφmto zp∙sobem
m∙₧eme dosßhnout specißlnφch efekt∙, jako je zm∞na obsahu vφce rßm∙
najednou po zvolenφ jednoho odkazu. V₧dy bychom vÜak m∞li zvß₧it, zda je
chovßni strßnky snadno pochopitelnΘ pro jejφ u₧ivatele.
┌vod | KaskßdovΘ styly | Ukßzky | P°ehled vlastnostφ styl∙ | DHTML vs. Java