Professional Documents
Culture Documents
HTML5 PDF
HTML5 PDF
HTML 5
AZ J SZABVNY
Ugorjunk fejest a webfejleszts jvjbe!
HTMLS
Tartalom
Elsz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
13
MIME-tpusok. . . . . . . .
Ugorjunk fejest!
13
. . . . . .
. .
14
. 23
. 25
. 26
. 28
Milyen munkacsoport?.
. 30
Vissza a W 3C-hez. .
. 32
Utsz . . . . .
. 33
Tovbbi olvasmnyok
. 34
. . . . .
. 35
szlelsi mdszerek . . . . . . . .
. 35
. 36
A rajzvszon . .
. 37
Rajzvszonra rt szveg.
. 38
Ugorjunk fejest!
Vide
. . .
. . . . . . .
. 40
Videoformtumok
. 41
. 44
Helyi trols. . . . . . . . . .
. 44
Webmunksok . . .
. 45
. .
. .
. 46
Helymeghatrozs
. 48
Bevitelielem-tpusok. .
Helyrz szveg . .
. 49
. .
51
Automatikus rlapfkusz .
. 52
Mikroadatok. . .
. 53
Tovbbi olvasmnyok . .
. 54
. .
. 57
A dokumentumtpus.
. 57
A gykrelem
. 60
Ugorjunk fejest!
.
A <head> elem .
. 61
Karakterkdols .
. 62
Viszonyler elemek .
. 64
. 67
. 71
. . . .
Cikkek . . . .
. 73
. 77
. 80
Dtumok s idpontok.
. 83
Navigci .
. . .
. 85
Lblcek .
. . . .
. 87
Tovbbi olvasmnyok
. 90
Ugorjunk fejest!
. . .
Egyszer alakzatok .
. 93
. 94
Rajzvszon-koordintk
. 96
tvonalak. .
. 98
Szveg .
101
Szntmenetek
105
Kpek .
109
113
115
Tovbbi olvasmnyok
120
Ugorjunk fejest!
121
Videorrolk.
122
Videokodekek
123
H.264
125
Theora . . .
126
VP8 .
126
Audiokodekek
127
129
130
Yorbis .
130
. . .
131
134
136
143
145
.153
154
s vgl, a lerkd! .
157
161
163
!64
Tovbbi olvasmnyok .
165
. .
167
A Geolocation API
167
Mutasd a kdot!
168
A hibk kezelse
171
Ugorjunk fejest!
172
175
176
178
Tovbbi olvasmnyok
179
Ugorjunk fejest!
. .
. .
181
182
Bemutatkozik a HTML5-trol
. .
A HTML5-trol hasznlata
183
185
186
188
. .
188
191
Tovbbi olvasmnyok .
193
. .
195
A gyorstrjegyzk.
Ugorjunk fejest!
196
Hlzati szakaszok
198
Tartalk szakaszok
199
Az esemnyfolyam
201
206
Tovbbi olvasmnyok . .
207
. .
203
9. fejezet- rltrlapok
Ugorjunk fejest!
. . . .
Helyrz szveg
. .
209
. . .
209
211
E-mail cmek
213
Webcmek. . . .
.215
Szmok lptetmezkben .
217
Szmok csszkkon
220
Dtumvlasztk
221
Keresmezk
Sznvlasztk
224
226
s mg egy dolog...
226
Tovbbi olvasmnyok
228
229
230
A mikroadarok adatmodellje.
232
Szemlyek felcmkzse.
236
243
Szervezetek felcmkzse .
246
Esemnyek felcmkzse . .
251
257
Kritikk felcmkzse
259
Tovbbi olvasmnyok
263
Fggelk
A "mindent egyben tartalmaz
s majdnem bcsorrendbe rendezett" tmutat,
amelyet kvetve brmit szlelhetnk
Az elemek listja .
Index
265
265
Tovbbi olvasmnyok
271
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . ..
273
Elsz
(3.
fejezet)
(4. fejezet)
Elsz
Elsz
&&
1.
fejezet
Ugorjunk fejest!
Nemrg rbukkantam a Mozilla egyik fejlesztjnek rsra, aki a szabvnyok
megalkotsnak eredend nehzsgrl rtekezett (http:!llists. w3. orgiArchvesi
MIME-tpusok
Ez a knyv a HTML5-rl szl, nem a HTML korbbi vltozatairl, s nem is
az XHTML brmelyik vltozatrl. Ahhoz azonban, hogy megrthessk
a HTML5 trtnett s megalkotsnak mozgatrugit, tisztban kell lennnk
nhny technikai rszlettel- egszen pontosan a MIME-tpusok mibenltvel.
Minden alkalommal, amikor a webbngsznk egy oldalt kr, a webki
szolgl elszr nhny fejlcet kld neki, mieltt tadn az oldal tnyleges
l. fejezet
l. fejezet
1. fejezet
15
NAME="nv".
IMG
16
1.
fejezet
l. fejezet
<A>
cmkre, de gy
See
photo
Lsd a kpet)
vegkm kezelte.
Nhny rval azt kveten, hogy Tony kzztette a levelt, T im Berners
Lee vlaszolt r:
n gy kpzeltem, hogy az brkat gy rnnk le:
<a name=figl href= "fghj kdfghj
PRESENT
l. fejezet
<AUD
SRC=">file://foobar.com/foo/bar/
l. fejezet
<iframe> elemben.
Vgll993. mrcius 12-n Marc Andreessen is visszatrt az zenetszlhoz:
Ismt a begyazott kpekrl: egyre kzelebb kerlk a Mosaic vO.lO
kiadshoz, amely - ahogy korbban emltettem - tmogaeni fogja a
begyazott GIF s XBM kpeket/bitkpeket. [...]
Jelenleg nem llunk kszen az INCLUDE!EMBED tmogatsra, [...] ezrt
valsznleg az <IMG SRC="url"> vltozatnl maradunk (nem az ICON
mellett dntttnk, mert nem minden begyazott kpre igaz, hogy ikon
lenne). A begyazott kpek egyelre nem kapnak kifejezetten tartalom
tpust, de ksbb ezt is tmogatni tervezzk (a MIME ltalnos megva
lstsval egytt). A kpolvas eljrsok, amelyeket jelenleg hasznlunk,
valjban mener kzben kpesek felismerni a kp formtumt, ezrt
a fjlnv-kiterjesztsnek nem is lesz jelentsge.
22
l.
fejezet
Tretlen fejlds
Engem minden szempontbl lenygz ez a 17 ves eszmecsere, amely vgl
egy olyan HTML-elem megalkotshoz vezetett, amelyet szinte minden va
laha ltrehozott weboldalon felhasznltak. Gondoljuk csak vgig:
dynlwglcharterlhttpbis-charter. html}.
1.
fejezet
1.
fejezet
nem szabta meg, hogyan folyja krl a szveg a kpet; s nem tmogatta
a helyettest szvegeket vagy a rgebbi bngszknek nyjtott alaprtelme
zett tartalmat. 17 vvel ksbb mg mindig kszkdnk a tartalom kiszimato
lsval, ami mg mindig rlt biztonsgi kockzatok forrsa. Mindezt nyomon
kvethetjk a Nagy Bngszhborn t egszen 1993. februr 25-ig, amikor
"
Marc Andreessen mellkesen odavetette, hogy "egy nap taln a MIME , aztn
ettl fggetlenl kzreadta a kdjt.
l. fejezet
1. fejezet
/> vagy
application/
paperslopera. htm/):
A kvetkez ht alapelv jelkpezi, hogy mi mit tartunk a legfontosabb
kvetelmnyeknek:
l.
fejezet
jl krlrt hibakezels
A hibakezelst a webalkalmazsokban olyan rszletessggel kell megha
trozni, hogy a bngszknek (felhasznli gynkknek-User Agent,
UA) ne kelljen sajt hibakezel eljrsokat kidolgozniuk, vagy ms fel
hasznli gynkk kdjt visszafejtenik
Gyakorlati haszon
A webalkalmazsok szabvnyaiba bekerl minden szolgltatsnak iga
zolhat gyakorlati haszna kell legyen. Ennek fordtottja nem felttlenl
igaz: nem minden gyakorlati haszon igazolja egy j szolgltats szks
gessgt.
A gyakorlati hasznot igazol hasznlati eseteket lehetleg olyan vals
webhelyekrl kell venni, ahol a szerzk korbban ms, sikertelen meg
oldssal prbltak tllpni a korltokon.
fejezet
29
Nyltfolyamat
A Web nyer azzal, hogy a fejlesztse nylt krnyezetben folyik. A Web
kzppontjban a webalkalmazsok fognak llni, ezrt ezek fejlesztsnek
is nyltan kell trtnnie. A levelezlistkat, archvumokat s szabvny
tervezeteket folyamatosan elrhetv kell tenni a nagykznsg szmra.
A mhely rsztvevit megszavaztattk, hogy "a W3C deklaratv bvtseket
dolgozzon ki a HTML-hez s a CSS-hez, valamint imperatv bvtseket
a DOM-hoz, hogy eleget tegyen a kzpszint webalkalmazsok kvetelm
nyeinek" vagy "kifinomult, teljes rtk, opercis rendszer szint alkalma
"
zsprogramozsi felleteket ? Az els megoldsra 8-an, a msodikra ll-en
(http:llwww.w3.org/2004104/webapps
cdfwslsummary) a W3C tagjai ezt rtk: " A W3C jelenleg nem kvn semmi
lyen erforrst ldozni a harmadik szavazs krdsben rintett terletre a HTML s a CSS bvtsre a webalkalmazsokat illeten -, eltekintve
a W3C munkacsoportjai ltal jelenleg is fejlesztett technolgiktl."
Ezzel a dntssel szembeslve azoknak, akik a HTML s a HTML
rlapok tovbbfejlesztst javasoltk, kt lehetsgk maradt: feladjk, vagy
a W3C keretein kvl folytatjk a munkjukat. Az utbbi mellett dntttek:
bejegyeztettk a whatwg.org tartomnynevet, s 2004 jniusban megszle
tett a WHAT Warking Group.
Milyen munkacsoport?
Mi a tr az a WHAT Warking Group? Mondjk el k a sajt szavaikkal
1.
fejezet
l.
fejezet
31
Vissza a W3C-hez
A W3C s a WHAT Warking Group lnyegben vekig levegnek nzte
egymst. Mikzben a WHAT munkacsoport a webes rlapokra s az j
HTML-szolgltatsokra sszpontostott, a W3C HTML-munkacsoportja az
XHTML 2.0-s vltozatn szorgoskodott. 2006 oktberre azonban vilgoss
vlt, hogy a WHAT munkacsoport jelents elnyre tett szert, mg az X HTML
2 mg mindig csak vzlatszinten ltezett, s egyetlen komolyabb bngsz
sem valstotta meg. 2006 oktberben Tim Berners-Lee - szemlyesen
a W3C alaptja- bejelentette, hogy a W3C a jvben a WHAT munkacso
porttal kzsen fog dolgozni a HTML rovbbfejlesztsn
(http://dig.esail.
mit. edu!breadcrumbs/node/166):
Bizonyos dolgok vekkel ksbbrl visszatekintve vilgosabb vlnak.
A HTML-t fokozarosan tovbb kell fejleszteni. A ksrlet, hogy a vilgot
rvegyk arra, hogy egyszerre lljon t az X ML-re, zrja idzjelek kz
a jellemzrtkeket, zrja le perjellel az res cmkket, s hasznljon
nvtereket, megbukott. A HTML-oldalakat kszt nagykznsg nem
mozdult, nagyrszt azrt, mert a bngszk nem panaszkodtak. Egyes
nagyobb kzssgek megvalstottk ugyan az tllst, s lvezik
a jlformlt rendszerek elnyeit, de nem mindenki. Fontos, hogy folya
matosan tovbbfejlesszk a HTML-t, mikzben nem mondunk le
32
1.
fejezet
Utsz
2009 oktberben a W3C lelltotta az XHTML 2 Working Group munk
jt, s a dnts indoklsaknt a kvetkez nyilatkozatot bocstotta ki
www. w3.
(http:/1
org/2009/06/xhtml-faq. htm/):
1. fejezet
33
Tovbbi olvasmnyok
w3.orgltopic!HTML/history)
comlbloglbriefhistory-ofhtml}
2.
fejezet
A HTML5-kpessgek szlelse
Ugorjunk fejest!
Joggal tehetjk fel a krdst: "Hogyan kezdhetnk el tllni a HTML5 hasz
nlatra, ha a rgebbi bngszk nem tmogatjk?". A krds azonban flre
vezet, ugyanis a HTML5 nem egyetlen nagy egysg, hanem nll szolgl
"
tatsok gyjtemnye. A "HTML5-tmogats teht nem derthet fel, mert
ilyesmi nem ltezik. Az egyes szolgltatsok- a rajzvszon, a vicleobegyazs
vagy a helymeghatrozs - megltt azonban igenis szlelhetjk.
szlelsi mdszerek
Amikor a bngsznk megjelent egy weboldalt, egy dokumentumobjektum
modellt (Document Object Model, DOM) pt fel, ami nem ms, mint az olda
lon tallhat HTML-elemeket brzol objektumok gyjtemnye. Minden
elemet- minden <p>-t, minden <d iv>- et s minden <span>-t- nll objek
tumok kpviselnek a DOM-ban. (Ugyanakkor lteznek globlis objektumok is,
mint a window vagy a document, amelyek nem ktdnek konkrt elemekhez.)
Minden DOM-objektum rendelkezik bizonyos kzs tulajdonsgokkal, de
egyes objektumoknak tbb tulajdonsga van, mint msoknak. A HTML5
szolgltatsait tmogat bngszkben egyes objektumok egyedi tulajdons
gokkal brnak, gy egy gyors pillants a DOM-ra elrulja, hogy a bngsz
milyen szolgltatsokat tmogat.
Ngy egyszer mdszer ltezik arra, hogy feldertsk, hogy egy adott bn
gsz rendelkezik-e egy bizonyos kpessggel. Ezek a legegyszerbbtl a leg
sszetettebb fel haladva a kvetkezk:
l. Megvizsgljuk, hogy egy globlis objektum (pldul a window vagy
HTML5-kpessgek szlelse l 35
(http://www.modernizr.com)
A HTML5-kpessgek szlelse
2. fejezet
l l Rajzoljunk
l else {
ll
l
alakzatokat!
:(
A rajzvszon
A HTML5 a <canvas>, vagyis rajzvszon" elemet (http://bit.ly/9]Hz0j) gy
"
hatrozza meg: egy a felbontstl fgg bitkpes rajzvszon, amelyet grafiko
"
nok, jtkgrafikk, illetve ms kpi elemek futs kzbeni megjelentsre hasz
nlhatunk". A rajzvszon egy tglalap alak terlet az oldalon, amire JavaScript
kdok segtsgvel brmit rajzolhatunk. A HTML5 klnfle fggvnyeket
( Canvas API") hatroz meg alakzatok rajzolshoz, tvonalak meghatrozs
"
hoz, szntmenetek ltrehozshoz s transzformcik alkalmazshoz.
A rajzvszon-API tmogatsnak feldertse a 2. szlelsi mdszerrel (lsd
az szlelsi mdszerek" cm rszt a fejezet elejn) trtnik. Ha a bng
"
sznk tmogatja a Canvas API-t, az ltala ltrehozott, a <canvas> elemet
jelkpez DOM-objektum rendelkezni fog egy getContext ( ) nev tag
fggvnnyel (lsd a 4. fejezet "Egyszer alakzatok" cm rszt). Amennyiben
a bngsznk nem tmogatja a rajzvszon-API-t, a <canvas> elem szmra
ltrehozott DOM-objektum csak ltalnos tulajdonsgokkal fog brni, ame
lyek kztt nem tallunk olyanokat, amelyek kifejezetten a rajzvszonhoz
kapcsoldnak. A rajzvszon tmogatst ezzel a fggvnnyel vizsglhatjuk:
function supports canvas ( )
_
Ez az elem soha nem kapcsoldik az oldalhoz, teht soha senki nem fogja
ltni. Csupn ott lebeg a memriban ttlenl s cltalanul, mint egy kenu
a lustn hmplyg folyn.
2.
fejezet
HTML5-kpessgek szlelse l 37
!document.createElement('canvas')
.getContext;
(true vagy
return
false) knyszertjk:
!document.createElement('canvas') .getContext;
rajzvszon-tmogats
Rajzvszonra rt szveg
Mg ha a bngsznk tmogatja is a rajzvszon-API-t, nem biztos, hogy a
rajzvszonra rt szvegek API-jt ( Canvas text API) is ismeri. A Canvas API
idvel egyre bvlt, s szvegr fggvnyeket adtak hozz, a rajzvszont
tmogat bngszk kzl azonban nmelyiket mr az eltt piacra dobtk,
hogy a szveg-API elkszlt volna.
38
A HTML5-kpessgek szlelse
2. fejezet
(! supports _canvas () ) {
return false; }
==
'function';
(!supports_canvas()) {
return false;}
'function' ;
2.
fejezet
HTML5-kpessgek szlelse l
39
Vide
A HTML5 egy j, <v ideo> nev elemet hatroz meg a weboldalakba gyaz
hat videk rszre. A videk begyazsa korbban nem volt lehetsges olyan
kls fejleszts bvtmnyek (plug-in) nlkl, mint az Apple QuickTime
vagy az Adobe Flash.
A <video> elemet gy terveztk, hogy mindenfle szlel parancskd
nlkl hasznlhat legyen. Tbb vicleofjlt is megadhatunk, s a HTML5
videotmogatsval rendelkez bngszk aszerint vlaszthatnak kzlk,
hogy mely vicleoformtumokat ismerik.*
A HTML5-viclet nem tmogat bngszk teljesen figyelmen kvl
hagyjk a <video> elemet, de ezt az elnynkre fordthatjuk, s ilyenkor
utasthatjuk a bngszt, hogy egy kls bvtmny segtsgvel jtssza le
a videt. Kroc Camen tervezett egy Vicleo for Everybody! nev megoldst
40 l
A HTML5-kpessgek szlelse
2. fejezet
() {
if
ll
ll
Videoformtu mok
A videoformtumok olyanok, mint az rott nyelvek. Egy angol nyelv jsg
tartalmazhatja ugyanazokat a hreket, mint egy spanyol, de ha csak ango
lul tudunk, csak az egyiknek vehetjk hasznt. Ahhoz, hogy le tudjon
jtszani egy videt, a bngsznknek rtenie kell a "nyelvet", amelyen a vi
det "rtk ".
A videk nyelvt "kodeknek " hvjk- ez az az algoritmus, amelyet a vide
bitfolyamm alaktsra hasznltak. A vilgon kodekek tucatjai lteznek melyiket hasznljuk? A HTML5-vide sajnlatos valsga az, hogy a bng
szk nem tudnak megegyezni egyeden kodekben, de szerencsre gy tnik,
sikerlt leszktenik a krt kettre. Az egyik kodekrt fizetni kell (mert
szabadalmaztatott), viszont mkdik aSafariban s az iPhone kszlkeken
(st az Adobe Flash-ben is, ha egy olyan megoldst alkalmazunk, mint
a Vicleo for Everybody!). A msik kodek ingyenes, s az olyan nylt forrs
bngszk is ismerik, mint a Chrome vagy a Mozilla Firefox.
2. fejezet
HTML5-kpessgek szlelse l 41
return false; )
returnfalse;)
Azr, hogy ez ponrosan mir jelenr, az 5. fejezerben magyarzom el, de rdemes teher elolvasni az
"
"A genrle inrroducrion ro vicleo encoding (http://diveintomark.orgltaglgive) cm rsr is.
42
A HTML5-kpessgek szlelse
2. fejezet
"probably"
(! supports_video () ) {
return false;
if
( ! supports_video () ) {
return false;
Ezt a fggvnyt sem kell magunknak megrnunk: a klnbz HTML5videoformtumok tmogatsnak szlelsre is hasznlhatjuk a Modernizr
knyvtrat (megjegyzend, hogy a Modernizr mg nem kpes szlelni a nylt
WebM vicleoformtum tmogatst):
2.
fejezet
HTML5-kpessgek szlelse l 43
if (Modernizr. v ideo) (
ll
(Modernizr.video.ogg) (
l l megprbljuk az Ogg trolba csomagolt
l l Ogg Theora + Verbis formtumot
l else if (Modernizr.video.h264) (
l l megprbljuk az MP4 trolba csomagolt
l l H. 264 vide+ MC hang formtumot
l
l
if
Helyi trols
A HTML5-trol (http:lldev. w3. orglhtm/5/webstorage/) arra ad mdot a web
helyeknek, hogy informcikat troljanak a felhasznl szmtgpn, ame
lyeket ksbb kinyerhetnek. A HTML5-trol mkdsi elve hasonl a stik
hez (cookie), de nagyobb mennyisg informcihoz terveztk. A stik mrete
korltozott, s a bngsz minden alkalommal elkldi ket a webkiszolgl
nak, amikor j oldalt kr (ami tovbbi idbe telik, s rtkes svszlessget
emszt fel). A HTML5-trol a felhasznl szmtgpn marad, s a web
helyek JavaScript-kd segtsgvel rhetik el, miutn az oldal betltdtt.
44 l
A HTML5-kpessgek szlelse
2. fejezet
[' localStorage' J
! =null;
Ezt a fggvnyt sem kell magunknak megrnunk: a HTML5 -fle helyi tro
ls tmogatsnak szlelsre is hasznlhatjuk a Modernizr knyvtrat (lsd
"
a "Modernizr: egy HTML5-szlel knyvtr cm rszt a fejezet elejn):
(Modernizr .localstorage) (
l l A window .localStorage elrhet!
j else {
l l nincs elrhet beptett tmogats a helyi trolshoz : (
l l prbljuk meg esetleg aGears-t vagy egy msik kls megoldst
if
Webmunksok
A webmunksok (Web Worker API, http://bit.ly/9jheoj) szabvnyos mdot
adnak a bngszknek arra, hogy JavaScript-kdokat futtassanak a httrben.
2.
fejezet
HTML5-kpessgek szlelse l 45
a fggvnnyel vizsglhatjuk:
function supports_web_ workers ( )
46 l A HTML5-kpessgek szlelse
2.
fejezet
() {
return! !window.applicationCache;
)
if
2. fejezet
A HTML5-kpessgek szlelse l 47
Helymeghatrozs
A helymeghatrozs (geolokci) annak a mvszete, hogy kidertsk, hol
tartzkodunk a Fldn, s (ha kvnjuk) megoszthassuk ezt az informcit
azokkal, akikben megbzunk. A tartzkodsi helynket sokflekppen ki le
het derteni - az IP-cmnkbl; a drt nlkli hlzati kapcsolatunkbl; ab
bl, hogy a mobiltelefonunk melyik adtoronnyal ll ppen kapcsolatban;
vagy egy GPS-eszkz segtsgve!, amely a Fld krl kering mholdaktl
kapott informcik alapjn llaptja meg a szlessgi s hosszsgi fokot.
48
l A HTML5-kpessgek szlelse
2.
fejezet
Bevitelielem-tpusok
Ismerjk a webes rlapokat, igaz? Ltrehozunk egy <form> elemet, hozz
adunk nhny <input type="text"> elemet, esetleg egy <input type=
"password"> mezt, s egy <input type="submit"> gombbal tesszk
teljess a mvnket.
Nos, ez sznalmasan kevs. A HTMLS a beviteli elemeknek tbb mint
egy tucat j tpust hatrozza meg, amelyeket felhasznlhatunk az rlap
jainkon:
<input type="search''>
A keresmezket lsd:
2.
fejezet
http:llbit.fyl9mQt5C.
A
HTML5-kpessgek szlelse l
49
<input type="number">
50
A HTML5-kpessgek szlelse
2. fejezet
==
"text";
Helyrz szveg
Az j tpus beviteli elemek mellett a HTML5 tbb apr jtst is tartalmaz
a meglev rlapokhoz. Az egyik ilyen j szolgltats, hogy helyrz szveget
tehetnk egy beviteli mezbe. A helyrz szveg addig lesz lthat a beviteli
mezben, amg a mez res, s nincs rajta a fkusz. Amint azonban a beviteli
mezre kattintunk (vagy a tabultorbillentyvel lltjuk r a fkuszt), a hely
rz szveg eltnik. Ha nehezen tudjuk magunk el kpzelni a dolgot, a 9.
fejezet elejn, a "Helyrz szveg" cm rszben tallunk hozz kpernyfel
vteleket.
A helyrz szvegek tmogatsnak feldertse a 2. szlelsi mdszerrel
(lsd az "szlelsi mdszerek " cm rszt a fejezet elejn) trtnik. Ha a bn
gsznk tmogatja a helyrz szvegeket a beviteli mezkben, az ltala ltre
hozott, az <input> elemet jelkpez DOM-objektum rendelkezni fog egy
placeholder (helyrz) nev tulajdonsggal (mg akkor is, ha a HTML
2. fejezet
HTML5-kpessgek szlelse l 51
() {
if
Automatikus rlapfkusz
Sok webhely JavaScript-kdot hasznl arra, hogy a fkuszt automatikusan a
webes rlapok els beviteli mezjre lltsa. A Google.com nyitoldala pl
dul automatikusan a keresmezre lltja a fkuszt, hogy a keresett kifeje
zst azonnal berhassuk, anlkl, hogy elbb a mezbe kellene kattintanunk
Ez a legtbb ember szmra knyelmes, de a gyakorlott felhasznlknak vagy
a klnleges ignyekkel br felhasznlknak idegest lehet: ha lenyomjuk a
szkz billentyt, arra szmtva, hogy ezzel grgetjk az oldalt, csaldni fo
gunk, mert a fkusz mr egy rlapmezben tallhat, ezrt az oldal nem fog
lejjebb grdlni. (Helyette egy szkzt runk a beviteli mezbe.) Ha egy m
sik beviteli mezre lltjuk a fkuszt, mikzben az oldal mg tltdik, a web
hely amofkusz-kezel parancskdja "segt", s visszateszi a fkuszt az eredeti
beviteli mezbe, amint az oldal teljesen betltdtt, gy megszaktja a mun
knkat, s rossz helyre fogunk gpelni.
Mivel az automatikus fkuszllts JavaScript-kd segtsgvel trtnik,
nehz lehet minden szlssges esetet kezelni, s nem sok lehetsge marad
azoknak, akik nem akarjk, hogy a weboldal " ellopja " a fkuszt.
A problma megoldsra a HTML5 egy autofocus nev jellemzt vezet
be a webes rlapok minden vezrlje szmra. Az autofocus jellemz pon52 l A HTML5-kpessgek szlelse
2. fejezet
tosan azt teszi, amire a neve utal: a fkuszt egy adott beviteli mezre lltja.
Mivel azonban ez csak lerkd, s nem parancskd, a viselkedse minden
webhelyen azonos. Ezen kvl a bngszgyrtk (illetve a bvtmnyek k
szti) mdot adhatnak a felhasznlknak az automatikus fkuszls kikap
csolsra.
Az autofkusz tmogatsnak feldertse a 2. szlelsi mdszerrel (lsd az
szlelsi
mdszerek " cm rszt a fejezet elejn) trtnik. Ha a bngsznk
"
tmogatja a webes rlapok vezrlinek automatikus fkuszlltst, az ltala
ltrehozott, az <input> elemet jelkpez DOM-objektum rendelkezni fog
egy autofocus nev tulajdonsggal (mg akkor is, ha a HTML-kdban
nem szerepeltetnk autofocus jellemzt). Amennyiben a bngsz nem
tmogatja a webes rlapvezrlk autofkusz szolgltatst, az <input> elem
szmra ltrehozott DOM-objektumnak nem lesz autofocus tulajdonsga.
Az automatikus fkuszllts tmogatst az albbi fggvnnyel vizsgl
hatjuk:
function supports input_autofocus
var i
() {
return 'autofocus' in i;
if
Mikroadatok
A mikroadatok
(http://bit.lylckt9Rj)
fejezet
HTML5-kpessgek szlelse l 53
Tovbbi olvasmnyok
Szabvnyok s egyb lersok:
(http://bit.ly/akweH4)
54 l A HTML5-kpessgek szlelse
2.
fejezet
APII)
JavaScript-knyvtrak:
javascript)
Egyb cikkek s oktatanyagok
giv e)
"
"Vicleo type parameters (http://wiki.whatwgorglwiki/Video_type_parameters)
Jelen ktet Fggelke
3. fejezet
Ugorjunk fejest!
Ebben a fejezetben fogunk egy HTML-oldalt, amellyel az gvilgon semmi
gond nincs, s javtunk rajta. Egyes rszei rvidebbek, msok hosszabbak
lesznek - de az egsz sokkal olvashatbb fog vlni. Lenygz lesz!
A krdses oldal ezen a cmen tallhat: http:lldiveintohtml5.orglexamples/
blog-original.html. Olvassuk t tzetesen. ljk t. Szeressk. Nyissuk meg
egy j bngszlapon, s vissza se jjjnk, amg legalbb egyszer ki nem ad
tuk a "Forrs megtekintse" parancsot.
A dokumentumtpus
Az oldal forrsa gy kezddik:
<! DOCTYPE
html
PUBLIC
//W3C//DTD XHTML l.
Strict//EN
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">
3.
fejezet
Mitjelent mindez? l
57
"
"Activating Browser Modes with Doctype (http:llhsivonen.iki.fi/doctypel)
Trkkz md
A trkkz mdban a bngszk megsrtik a mai webformtum-szab
vnyok elrsait, hogy elkerljk azoknak az oldalaknak a mkds
kptelenn vlst, amelyeket az 1990-es vek vgn uralkod gyakor
latot kvetve rtak.
Szabvnykvet md
A szabvnykvet mdban a bngszk a jlformlt dokumentumokat
igyekeznek a szabvnyokban lertaknak megfelelen megjelenteni, ameny
nyire ezt az adott bngsz megvalstsa megengedi. A HTMLS ezt
"
a mdot "nem trkkz mdnak (no quirks mode) hvja.
Majdnem szabvnykvet md
A Firefox, a Safari, a Chrome, a (7.5-s vagy jabb) Opera s az lES ren
delkezik az gynevezett "majdnem szabvnykvet mddal" is, amely
58
l Mitjelent mindez?
3.
fejezet
,,,,
html
XHTML l. 0 Strict//EN"
l /www.w3 .org/TR/xhtmll/DTD/xhtmll-strict.dtd ">
PUBLIC "-//W3C//DTD
"http:
html>
3. fejezet
Mitjelentmindez? l 59
A gykrelem
A HTML-oldalak egymsba gyazott elemek sorbl llnak, teht egy oldal
szerkezete olyan, mint egy fa. Egyes elemek "testvrek", mint kt g, amely
ugyanannak a fnak a trzsbl ered. Olyan elemek is vannak, amelyek ms
elemek "gyermekei", mint amikor egy vkonyabb g hajt ki egy vastagabbL
(Ez a msik irnyban is rvnyes: azokat az elemeket, amelyek ms elemeket
tartalmaznak, a kzvetlen gyermekelemeik "szlcsompontjnak", illetve az
"
"
"
"unokik "seinek h vjuk.) A gyermektelen elemek a "levlcsompontok .
A legkls elem, amely az oldalon tallhat sszes tbbi elem se, a "gykr
elem". A HTML-oldalak gykreleme mindig a <html>.
l/www. w 3 .org/1999/xhtml
lang="en
xml:lang=en">
Ezzel a kddal nincs semmi gond. Megint csak azt mondhatom, ha tetszik,
tartsuk meg, hiszen rvnyes HTML5-kd. Egyes rszei ugyanakkor mr nem
szksgesek a HTML5-ben-ha ezeket eltvoltjuk, nyerhetnk nhny bjtot.
Az els dolog, amirl szt kell ejtennk, az xmlns jellemz. Ez mg az
XHTML l. O rksge. Azt mondja a bngsznek, hogy az oldalon rallhat
elemek az XHTML nvtr (http://www.w3.org/1999/xhtml) rszei.
A HTML5-ben azonban az elemek mindig ebben a nvtrben tallhatk,
60 l Mitjelent mindez?
3.
fejezet
A <head> elem
A gykrelem els gyermeke ltalban a <head> elem. A <head> elem
metaadatokat tartalmaz - informcikat az oldalrl, nem pedig az oldal
Nem angolul runk? Keressk meg az lralunk hasznlc nyelv kdjr a http:llwww.w3.org/
lnternationallquestionslqa-choosing-langrtage-tags cmen.
3. fejezet
Mitjelent mindez? J 61
</head>
Karakterkdols
Amikor azt ltjuk, hogy "szveg", valsznleg azokra a " karakterekre s je
lekre" gondolunk, amelyeket "a szmtgp kpernyjn ltunk ". A szmtg
pek azonban nem foglalkoznak karakterekkel s jelekkel, csak bitekkel s bj
tokkal. Minden szveg, amir a szmtgp kpernyjn ltunk, valjban egy
adott karakterkdolssal troldik. Sokfle klnbz karakterkdols ltezik:
vannak, amelyeket bizonyos nyelvekhez igaztottak, pldul az oroszhoz, a k
naihoz vagy az angolhoz, mg msokat tbbfle nyelvhez is hasznlhatunk.
Nagy vonalakban: a karakterkdols bizrosrja a megfelelterst a kpernyn
ltott szveg s a szmtgp memrijban, illetve lemezn trolt dolog kztt.
A valsgban ez persze bonyolultabb. Sok karaktert tbb kdtblban is
megrallunk, de az egyes kdolsok ms-ms bjtsorozatot hasznlharnak
ahhoz, hogy ezeker a karaktereket a memriban vagy a lemezen troljk.
A karakterkdolsra teht a szveg egyfajta visszafejt kulcsaknt gondolha
runk. Amikor valaki egy bjtsorozatot ad t neknk, s azt llrja rla, hogy
"
"szveg , tudnunk kell, hogy milyen karakterkdolst hasznlt, hogy a bj
rokat visszafordrhassuk karakterekre, s megjelenthessk (vagy feldolgoz
hassuk stb.) azokat.
62
l Mitjelent mindez?
3.
fejezet
Ez rviden azt jelenti, hogy a a weboldal szerzje gy vli, hogy egy HTML
dokumentumot ksztett, s ehhez az UTF-8 karakterkdolst hasznlta.
Mindkt emltett mdszer mkdik a HTML5-ben is, a HTTP-fejlcben
megadott karakterkdols viszont elnyt lvez, s - ha szerepel az oldalon fellbrlja a <meta> elemet. HTTP-fejlcet azonban nem mindenki llthat
be, ezrt a
<meta>
public-html/2007]ul/0550.html}:
A <meta char set=""> jellemzkombinci mellett az az rv szl,
<meta
charset>-tesztesetet is (http://simon.html5.orgltestl
htmllparsinglencoding).
3. fejezet
Mitjelent mindez? l 63
http-equiv> vagy
Viszonyler elemek
A szokvnyos hivatkozsok (<a href>) egyszeren egy msik oldalra mu
tatnak. A viszonyler elemek magyarzzk meg, hogy mirt mutatunk egy
msik oldalra. Lnyegben befejezik a mondatot: "Azrt mutatok erre a m
sik oldalra, mert...
"
bit.ly!d2cbiR):
64
l Mitjelent mindez?
3.
fejezet
rel= stylesheet
fejezet
Mitjelent mindez? l
65
l>
Folytassuk a mintaoldalunkat:
<link rel="alternate"
type="application/atorn+xrnl"
title="My Weblog feed"
href=
"lfeed/" l>
rel=
66 l Mitjelent mindez?
3.
fejezet
egyike ppen az, hogy miknt kell egy a rel= "alte rnate" elemmel hivat
kozott dokumentum nyelvt meghatrozni. (A helyes megolds - ahogy
a HTML 4 hibajegyzkben s most mr a HTML5-ben is ll- a h reflang
jellemz hasznlata.) Sajnos ezeket a hibajavtsokat soha nem ptettk be
a HTML 4 szabvnyba - mivel a W3C HTML-munkacsoportjbl mr
senki nem dolgozott tbb a HTML-en.
HTML5-ben
rel = "archives"
alakot hasznljk, rel= "last" helyett pedig a rel= "end "-et. Ja, s
a sajt ujjukbl szopott rel= " up" hivatkozssal mutatnak a "szl
oldalakra".
3.
fejezet
67
"
( breadcrumb navi
(http://bit.ly/diA]UP).
rel= "license"
68 l Mitjelent mindez?
3.
fejezet
"
bad informcit kiszivrogtatni a hivatkozrl (referrer)". Ezt jelenleg
egyetlen forgalomban lev bngsz sem tmogatja, de nemrg bekerlt
a WebKit-be, gy vgl meg fog jelenni a Safariban, a Google Chrame
ban s ms WebKit alap bngszkben. A rel= "noreferrer "-hez
a http:llwearehugh. comlpublic/2009104/rel-noreferrer. htm! cmen tallha
tunk egy tesztesetet.
rel
"pingback"
"
a Pingback lersban (http://hixie. chlspecslpingbacklpingback-1. O) szere
pel, a pingback rendszer arra szolgl, hogy egy webnapl automatikus
"
rtestst kaphasson, amikor ms webhelyek r mutat hivatkozst tesz
nek kzz. [.. ], vagyis fordtott hivatkozst tesz lehetv, a hivatkozsi
.
rel="prefetch"
h ref ="<emphasis>Az
els
URL-je</emphasis>"> kdot
rel= "search"
70 l Mitjelentmindez?
3. fejezet
j jelentstkrz elemek
HTML5-ben
A nav elem egy oldal egy olyan szakaszt jelkpezi, amely ms olda
lakra vagy az adott oldal ms rszeire hivatkozik, teht egy navigcis
hivatkozsokkal elltott szakaszt. Egy oldalon nem minden hivatkozs
csoportnak kell nav elemen bell szerepelnie, hanem csak azoknak
a szakaszoknak, amelyek fontosabb navigcis blokkokbl llnak. A lb
lcben pldul a webhely klnbz oldalaira murat hivatkozsok- szol
gltatsi felttelek, nyitoldal, szerzi jogok stb. - rvid listjt szaktk
elhelyezni, de ilyenkor a footer (lblc) elem nmagban elg, nincs
szksg nav elemre.
<arti ele>
fejezet
<aside>
A time (id) elem vagy egy (24 rs idbeoszts) idpontot, vagy egy
konkrt dtumot jell a Gergely-naptrban (nem ktelezen kiegsztve
egy idponttal s egy idzna-eltrssel).
<mark>
72 l Mitjelent mindez?
3.
fejezet
fejezet
73
nem engedi meg az ismereden elemek formzst. Tegyk fel pldul, hogy
a kvetkez lerkdunk van:
<style type="text/ ess">
article
</style>
<article>
<hl>Welcome to Initech</hl>
<p>This is you r <span>first day</ span>. </p>
</article>
Az Internet Explorer (az IE8-cal bezrlag) nem tesz vrs keretet a cikk
kr. E knyv rsnak idejn az Internet Explorer 9 mg csak btavltozat
ban ltezett, de a Microsoft bejelentette (s a fejlesztk megerstettk), hogy
az Internet Explorer 9-ben mr nem lesz jelen ez a problma.
A msik gondot a DOM okozza, amelyet a bngszk akkor ptenek fel,
amikor ismereden elemekkel tallkoznak. Ebben a tekintetben is az Internet
Explorer a fekete brny. Ha az IE nem ismeri fel egyrtelmen az elem nevt,
akkor az elemet res, gyermektelen csompontknt szrja be a DOM-ba. gy
minden elem, amelyrl azt feltteleznnk, hogy az ismereden elemnek kz
veden gyermeke lesz, ehelyett testvrknt kerl a DOM-ba.
Lssuk a klnbsget egy ASCII-brn! Ez a DOM kvetkezne a HTMLS
bl:
article
+--hl (az article gyermeke)
l
l
l
+--p (az article gyermeke, a hl testvre}
l
+--szvegcsompont "This is your "
l
+--span
l
l
l
l
+--szvegcsompont "first da y"
+--szvegcsompont ".
74
l Mitjelent mindez?
"
3.
fejezet
l
+--szvegcsompont "Welcome to Initech
p (a hl testvre)
l
+--szvegcsompont "This is your
l
+--span
l
l
l
+--szvegcsompont "first da y
l
+--szvegcsompont "."
</st yle>
<script>document.createElement("article");</script>
</head>
<body>
<article>
<hl>Welcome to Initech</hl>
<p>This is your <span>first day</span>. </p>
</article>
</body>
</html>
3.
fejezet
75
)
</script>
<! [endif]-->
Az<!-- [if lt
IE
3.
fejezet
script>
<! [endif]-->
</head>
Cmsarok
Trjnk vissza a mintaoldalunkhoz- egszen pontosan a cmsorokhoz:
<div id= "header">
<hl>My Weblog</hl>
<p class="tagline">A lot of effort went into ma king this effortless. </p>
</div>
<div class="entry">
<h2>Travel day</h2>
</div>
fejezet
Mitjelent mindez? l
77
Ez j, mert brkinek, akit rdekel, elrulja, hogy egy cmsorrl van sz. De
mi a helyzet a roottval (tagline)? Ilyet is gyakran szoktak hasznlni, de eddig
nem volt r szabvnyos lerkd, mert nem knny jellni. A mott olyan,
mint egy alcm, de az elsdleges cmhez "kapcsoldik "- vagyis olyan alcm,
amely nem hoz ltre sajt szakaszt.
Az oldal szerkezett olyan cmsorelemek hozzk ltre, mint a <hl> s
a <h2>. Egytt egy olyan vzlatot alaktanak ki, amely segt magunk el
kpzelni az oldalt, illetve megknnyti a mozgst az oldalon bell. A kper
nyolvas prograrnak a dokumentumvzlatra tmaszkodva segtik a vak
felhasznlkat, hogy eligazadjanak az oldalon. A dokumentumvzlat kpi
megjelentsre internetes eszkzket (http:llgsnedders.html5.orgloutlinerl) s
bngszbvtmnyeket (http:llchrispederick. comlworklweb-developerl) is hasz
nlhatunk.
A HTML 4-ben kizrlag <hl>-<h6> elemekkel lehetett dokumentum
vzlatot ltrehozni. A mintaoldalunk vzlata gy fest:
MyWeblog (hl)
l
+--Travel day (h2)
l
+--I'm going to Prague! (h2)
Ez mind szp, de azt jelenti, hogy nincs md az "A lot of effort went into
making this effortless" ( "Egy csom problmt oldottunk meg, hogy a meg
olds problmamentes legyen" ) mott felcmkzsre. Ha <h2> cmsorknt
prbljuk megjellni, egy fanromcsompont jelenik meg a dokumentum
vzlatban:
78
l Mitjelent mindez?
3.
fejezet
My Weblog (hl)
l
+--A lot of effort went into making this effortless. (h2)
l
+--Travel day (h2)
l
+--I'm going to Prague'
(h2)
l
+--A lot of effort went into making this effortless. (h2)
l
+--Travel day (h3)
l
+--I'm going to Prague! (h3)
<hgroup>
<hl>My Weblog</hl>
<h2>A lot of effort went into making this effortless. </h2>
</hgroup>
</header>
3. fejezet
Mitjelent mindez? l
79
l
+--Travel day (h2)
l
+--I'm going to Prague! (h2)
Cikkek
A mintaoldalunkat folytatva, lssuk, mit tehetnk ezzel a kddal:
<div class="entry">
<p class="post-date">October 22, 2009</p>
<h2>
<a href="#
rel="bookmark
80
l Mitjelent mindez?
3.
fejezet
<h 2>
<a href="#
rel="bookmark
</article>
<hl>
<a href="#"
rel="bookrnark"
title="link to this post">
Travel day
</a>
</hl>
</header>
</article>
hoznak ltre, vagyis j csompontot a dokumentumvzlatban- a HTML5ben viszont minden szakasznak sajt <hl> eleme lehet.
3.
fejezet
Mitjelent mindez? l 81
3.
fejezet
Dtumoks idpontok
Izgalmas, nem? Persze nem annyira izgalmas, mint meztelenl lesikJani
a Mount Everestrl, mikzben visszafel nekeljk az amerikai himnuszt, de
egy jelentstkrz lerkdtl nem rossz. De folytassuk a minraoldalunk
elemzst. A kvetkez sor, amire fel szeretnm hvni a figyelmet, ez:
<div class= "entry ">
class
jellemzkkel elltott
3. fejezet
Mitjelent mindez? l 83
l: 59pm EDT
</time>
cstrtk</ time>
s ez is:
<time datetime "2009-10-22 "></time>
3.
fejezet
<time datetirne=
October
</time>
<hl>
<a href=
"
rel="bookrnark"
title="link to this post">
Travel day
</a>
</hl>
</header>
<p> Lorern ip sum dolor sit amet ... </p>
</article>
Navigci
Minden webhelynek a navigcis sv az egyik legfontosabb rsze. A CNN.
com webhely minden oldalnak tetejn "flek " tallhatk, amelyek a kln
bz hresokrokra- "T ech " (Tudomny), "Health " (Egszsg), " Spons" (Sport)
'>gallery</a></li>
<li><a href="l">about</a></li>
</ul>
</div>
3.
fejezet
Mitjelent mindez? l
85
<ul>
<li><a href= "#">home</a></li>
<li><a href= "# ">blog</ a></li>
<li><a href= "# ">gallery</ a></ li>
<li><a href= "# ">about</a></li>
</ul>
</nav>
86
l Mitjelent mindez?
3.
fejezet
Lblcek
Vgre-valahra elrkeztnk a mintaoldalunk vghez. Az utols, amirl be
szlni szeretnk, az oldal utols eleme: a lblc. A lblc erede ti kdja gy
nzett ki:
<div id= faoter ">
<p>&U67;</p>
<p>&#l69; 2001–9 <a href= "#">Mark Pilgrim</ a></p>
</div>
</footer>
Mitjelent mindez? J
87
egy nnn farkba harap kgy volt, de tnyleg ennyi az egsz. A HTMLS
szabvnylersa ezt mondja: "A lblc jellemzen olyan informcikat tartal
maz a szakaszrl, amelyhez tartozik, mint a szakasz szerzje, hivatkozsok
kapcsold dokumentumokra, szerzi jogi informcik s hasonlk.". Ilyen
a mintaoldalunk lblce is: egy rvid copyright-szveg szerepel benne, vala
mint egy hivatkozs a szerzrl szl oldalra. Ha krlnznk nhny np
szer webhelyen, ms elemeket is lthatunk, amelyek alkalmasak arra, hogy
egy lblcben helyezzk el ket:
"
w3 c
<di v class=
faoter">
"
w3 c
footer-nav">
<h3>Navigation</h3>
<ul>
<li><a href= l ">Home< la></li>
<li><a href="/standards/">Standards</a></li>
88
3.
fejezet
<li><ahref="/participate/">Participate</a></li>
<li><ahref="/Consortium/membership">Membership</a></li>
<li><ahref="/Consortium/">About W3C</a></li>
</ul>
</div>
<div class="w3 c footer-nav">
<h3>Contact W3C</h3>
<ul>
<li><ahref="/Consortium/contact">Contact</a></li>
<li><ahref="/Help/">Help and FAQ</a></li>
<li><ahref="/Consortium/sup">Donate</a></li>
<li><ahref="/Consortium/siteindex">Site Map</a></li>
</ul>
</div>
<div class="w3c footer-nav">
<h3>W3C Updates</h3>
<ul>
<li><ahref= "http:
l /twitter.com/W3C">Twitter</a></li>
<li><ahref="http://identi.ca/w3c">Identi.ca</a></li>
</ul>
</div>
<p class="copyright ">Copyright
200 9
W3C</p>
</div>
id="w 3 c
elemm.
Alaktsuk a <div
class="w3c
<hl>Navig ation</hl>
<ul>
<li><ahref=
"l ">Home</a></li>
3. fejezet
Mitjelent mindez? l 89
</nav>
<nav>
<hl>Contact W3C
</hl>
<ul>
<li><ahref="/Consortium/contact">Contact</a></li>
<li><a href="/Help/">Help and FAQ</a></li>
<li><ahref="/Consortium/sup">Donate</a></li>
<li><a href= /Consortium/siteindex ">Site Map</a></li>
</ul>
</nav>
<section>
<hl>W3C Updates
</hl>
<ul>
<li><ahref="http://twitter.com/W3C">Twitter</a></li>
<li><ahref="http://identi.ca/w3c">Identi.ca</a></li>
</ul>
</section>
<p class="copyright">Copyright 200 9 W3C</p>
</footer>
Tovbbi olvasmnyok
A fejezetben szerepl mintaoldalak:
html)
A karakterkdolsrl:
www.tbray.org/ongoing/When/200x/2003/04126/UTF)
A HTML5 engedlyezsrl az Internet Explorerben:
com/devblog/2008/style-unknown-elements.html)
John Resig: HTML5 shiv (http:!lejohn.org!bloglhtml5-shivl)
90 l Mitjelent mindez?
3.
fejezet
html5-enabling-scriptl)
A szabvnykvet mdrl s a dokumentumtpus-kiszimatolsrl:
Henri Sivonen: "Activating Browser Modes with Doctype" (http://hsivonen.
iki.Ji!doctypel)- ez az egyetlen cikk, amelyet muszj elolvasnunk a tmrl.
Sok ms cikket rtak rla, de azok elav ultak, hinyosak vagy tvedseket
tartalmaznak.
A HTML5-t ismer ellenrz rendszer:
4.
fejezet
Ugorjunk fejest!
A HTMLS gy hatrozza meg a <canvas> ("rajzvszon") elemet
(http:!lbit.
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
4. fejezet
A rajzvszon rdge
... l 93
4. l. bra
Rajzvszon szegllyel
Egyszer alakzatok
IP
Arefox
Safari
Chrome
7.0+
3.0+
3.0+
3.0+
ra
10.0+
!Phone
Androld
1.0+
1.0+
var b_context
l A rajzvszon rdge...
4.
fejezet
function draw_b()
var b_canvas
b_context.fillRect(SO,
A fillr ect(x,
y,
szlessg,
magassg)
A strokeRect(x,
y,
szlessg,
magassg)
egy ngyszget
A clearRect(x,
y,
szlessg,
magassg)
trli a megadott
ngyszg kppontjait.
4.
fejezet
rajzvszon rdge... \
95
25),
a szlessge
(150)
s a magassga
(100)
(50,
Rajzvszon-koordintk
A rajzvszon egy ktdimenzis rcs. A
(O, O)
96
A rajzvszon rdge...
4. fejezet
Az
"x
Az
"
"(500, 375)
Egy pontbl a bal fels s egy msik pontbl a jobb als sarokban
"
betbl
Az "y" betbl
A "(O, O)" szvegbl a bal fels sarok kzelben
szvegbl a jobb als sarok kzelben
(0,0)
x
--------7
(500 ,375}
4.2. bra
Rajzvszonkoordinta-diagram
(id),
(width)
s magassgt
(height),
vala
A rajzvszon rdge.. .
J 97
varc_canvas=document.getElementByid( c ");
varcontext=c_canvas.getContext ("2 d");
tvonalak
7.0+
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
Kpzeljk el, hogy tollal rajzolunk egy kpet. Nem akarunk csak gy fejest
ugrani a rajzolsba, mert ha esetleg hibzunk, nem tudjuk majd kijavtani.
Ehelyett elszr ceruzval felvzoljuk a vonalakat, s ha elgedettek vagyunk
velk, kihzzuk a vzlatot tollal.
Minden rajzvszonhoz tartozik egy tvonal (path). Az tvonal meghat
rozsa olyan, mint ceruzval rajzolni. Azt rajzolunk, amit akarunk, de az nem
lesz a vgs alkots rsze, amg tollal ki nem hzzuk.
Ha egyenes vonalakat szeretnnk ceruzval rajzolni, az albbi kt md
szert alkalmazhatjuk:
moveTo (x,
lineTo (x,
for(varx=O.S; x<
context.moveTo(x,
}
for(vary=O.S; y<
375;
y+=lO)
context.moveTo(O, y);
context.lineTo(SOO, y);
}
98 l
A rajzvszon rdge...
4. fejezet
4.3. bra
4. fejezet
A rajzvszon rdge. .
J 99
4.
fejezet
"#OOO ;
4.4. bra
Szveg
7.0+
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
4. fejezet
A rajzvszon rdge . ..
l 101
A font rtke brmi lehet, amit egy font CSS-szablyba tennnk: betst
lus, betvltozat, betvastagsg, betmret, vonalmagassg s betcsald.
http://bit.ly/aHCdDO
102
rajzvszon rdge...
4. fejezet
kfeografikus
em-nQvzet a
4.5. bra
Szveg-alapvonalak
4. fejezet
A rajzvszon rdge . ..
l 103
Tegyk fel, hogy a bal fels sarokba kerl szveg esetben azt szeretnnk,
hogy a szveg teteje y=S-nl hzdjon. Viszont lustk vagyunk, s nem akar
juk megmrni a szveg magassgt, s kiszmtani az alapvonalat. Ehelyett
bellthatjuk a textBaseline tulajdonsgot a top rtkre, s tadhatjuk
a szveget befoglal doboz bal fels sarknak koordintjt:
context. textBaseline
"top";
context.fillText( "(O,
O)", 8, 5);
Most pedig jjjn a jobb als sarokba kerl szveg! Tegyk fel, hogy a szveg
jobb als sarkt a (492,
"right ";
context. textBaseline
context. fillText (
"bottom";
(0,0)
(500,375)
4.6. bra
104 l
A rajzvszon rdge...
4. fejezet
(0,0)
-------- --------
(500 ,375)
4.7. bra
Sz ntmenetek
Andmid
3.0+
3.0+
Sug_aras szntmenetek .
3.0+
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
10.0+
1.0+
1.0+
fejezet
A rajzvszon rdge. ..
105
width=
"
4.8. bra
A createLinearGradient(xO,
tl az (xl,
yO,
x l,
yl) az (xO,
yO) pont
A createRadialGradient(xO,
yO,
rO,
x l,
yl,
rl) egy kt
yl) kzp
ponttal s rl sugrral.
Ksztsnk lineris szntmenetet! A szntmenetek tetszleges mretek lehet
nek, de ezt most a rajzvszonnal megegyezen 300 kppont szlesre vesszk:
106
l A rajzvszon rdge...
4.
fejezet
var my_gradient
(0,
"black");
my_gradient;
300, 225);
context.fillRect(O, O,
4.9. bra
Tegyk fel, hogy egy olyan szntmenetet szeretnnk, amely fellrl lefel
halvnyodik. Amikor ltrehozzuk a szntmenet-objektumot, az x-rtkek (az
els s a harmadik paramter) legyenek llandk, mg az y-rtkek (a msodik
s a negyedik paramter) essenek O s a rajzvszon magassga kz:
4. fejezet
A rajzvszon rdge .
. .
J 107
var my_gradient
context.createLinearGradient (O,
O, O, 225) ;
my_gradient;
context.fillRect(O, O,
300, 225);
4.1 O. bra
context.createLinearGradient (0,
O, 300, 225);
my_gradient.addColorStop(O, "black");
my_gradient. addColorStop
context.fillStyle
context.fillRect
(0,
(l,
"white");
my_gradient;
O,
300, 225);
4.11. bra
108
l A rajzvszon rdge...
4.
fejezet
Kpek
7.0+
3.0+
3.0+
Cbrome_Ooera
iPhone
Android
3.0+
1.0+
1.0+
10.0+
A 4.12. brn egy macskrl kszlt rajzor lthatunk, amelyet az <img> elem
jelent meg.
'
-
4.12. bra
''
....,.._ J:
4.13. bra
A drawimage (kp,
dx,
A rajzvszon rdge . ..
J 109
A drawimage (kp,
adott kpet,
dw
dy,
szlessgre s
rajzolja a megadott
(dx,
A drawimage (kp,
dx,
dy)
sx,
dw,
fogja a paramterknt t
dh)
dh
koordintkon.
sy,
sw,
sh,
dx,
dy,
(sx,
dw,
dh)
fogja
sy,
sw,
sh)
(dx,
dy)
koordintkon.
(http://bit.ly/9WTZAp):
A
nek a sarkait az
(sx,
sy+sh)
(sx,
sy), (sx+sw,
sy), (sx+sw,
sy+sh)
a sarkait a
dy+dh)
(dx,
dy), (dx+dw,
dy), (dx+dw,
dy +dh)
(dx,
Image
<img>
width="177
height="ll3">
<canvas id="e" width="177 height= "113"></canvas>
<script>
window. onload = function ( )
O, 0);
};
</script>
110
A rajzvszon rdge...
4. fejezet
Forrskp
sy
Rajzvszon
sx
dx
dh
4.14. bra
<script>
var canvas
var context
document.getElementByid("e");
"images/cat.png ";
};
</script>
4. fejezet
"
context.drawimage(cat, x, y,
88, 56);
)
);
4.15. bra
Macskamintal
Ez a sok erfeszts felvet egy jogos krdst: mirt akarnnk egyltaln egy
rajzvszonra rajzolni egy kpet? Milyen elnyei vannak ennek a bonyolultabb
megoldsnak egy <i mg> elemmel s nhny CSS-szabllyal szemben? Mg
"
a "macskamintt is el tudnnk lltani 10 egymst tfed < img> elemmel.
A vlasz rviden annyi, hogy ugyanazrt tesznk ilyesmit, amirt szveget
"
rajzolnnk egy rajzvszonra (lsd a fejezet korbbi, "Szveg cm rszt).
4. fejezet
(http:l!code.google.comlplexplorercanvasl)- excanvas.js
ket az Internet Explorer gy rtelmez, mint egy if ( " ha" ) utastst: "ha az
aktulis bngsz az Internet Explorer brmelyik vltozata, hajtsd vgre ezt
a kdblokkot". Minden ms bngsz HTML-megjegyzsknt kezeli a teljes
blokkot. Az eredmny: az Internet Explorer letlti s vgrehajtja az excanvas.
js parancsfjlt, a tbbi bngsz azonban teljesen figyelmen kvl hagyja
(nem tlti le, nem hajtja vgre stb.), gy az oldal gyorsabban tltdik be azok
ban a bngszkben, amelyek bels tmogatst nyjtanak a Canvas API-hoz.
4. fejezet
A rajzvszon rdge...
113
4. fejezet
onload
fejezet
rajzvszon rdge .. l
.
115
ooo
ooo
ooo
Lps: O
l
4.16. bra
A Halmajtk kezdllsa
116
A rajzvszon rdge...
4. fejezet
&&
J
J
clickOnEmptyCell(cell);
)
else {
x= e. clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y= e.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
4. fejezet
117
Az
A rajzvszon rdge...
4. fejezet
gDrawingContext.beginPath();
l* fggleges vonalak* l
for (var x=0; x<= kPixelWidth; x+= kPieceWidth)
gDrawingContext.moveTo (0.5+x, 0);
gDrawingContext .lineTo (0.5+ x, kPixelHeight);
l* vizszintes vonalak*l
for (var y=0; y<=kPixelHeight; y+= kPieceHeight)
gDrawingContext .moveTo (O, O.5+ y);
gDrawingContext.lineTo (kPixelWidth, O.5 + y);
column
(oszlop) tulajdonsgai. A
(column,
row)
row (sor)
koordintkat n
y=
(false,
true,
A rajzvszon rd g e...
ha az
119
stroke()
"#OOO";
gDrawingContext.stroke();
"#OOO ;
gDrawingContext.fill();
<canvas>
elemben! ljen!
Tovbbi olvasmnyok
canvas
articles/view!html-5-canvas-the-basics/)
Canvas Dernos (http:!!www.canvasdemos.com}: bemutatk, eszkzk s
oktatanyagok a HTML <canvas> elemhez
"
"The canvas element (http:llbit.lyi9]Hz0j) a HTML5 szabvnyterve
zetben
4.
fejezet
5.
Vide
fejezet
Weben
Ugorjunk fejest!
Brki, aki elltogatott a YouTube.com oldalra az elmlt ngy vben, tudja,
hogy a weboldalakba videkat is begyazhatunk A HTMLS eltt azonban
ennek nem volt szabvnyokon alapul mdja. Lnyegben minden vide,
amit valaha lttunk " a Weben", egy kls bvtmny (plug-in) - esetleg
a QuickT ime, a RealPlayer vagy a Flash - segtsgvel jutott el hozznk.
(A YouTube a Flash-t hasznlja.) Ezek a bvtmnyek elg jl beplnek
a bngszbe, ezrt nem is nagyon vesszk szre, amikor hasznljuk ket legalbbis amg egy olyan rendszeren nem prblunk megtekinteni egy
videt, amelyik nem tmogatja az adott bvtmnyt.
A HTMLS ezzel szemben szabvnyos mdszert hatroz meg a videk
weboldalakba gyazsra: a <video> elem hasznlatr. A <video> elem
tmogatsa mg kplkeny - ami udvarias megfogalmazsa annak, hogy
egyelre nem mkdik (legalbbis nem mindenhol). De ne essnk ktsgbe!
Bsgesen van alternatva, alaprtelmezs s kerlt. Az 5.1. tblzat
megmutatja, hogy knyvnk rsnak idejn mely bngszk tmogattk
a <video> elemet .
./
./
./
./
./
./
fejezet
Videatralk
A videofjlokra ltalban gy szoktunk gondolni, hogy "A VI-fjlok" vagy
"
"
"
"MP4-fjlok , a valsgban azonban az "AVI s az " MP4 csupn trol
formtumok. Ahogy egy ZIP-fjl is brmilyen tpus fjlt tartalmazhat,
a videotrol-formtumok is csak azt hatrozzk meg, hogy miknt kell bennk
trolni adatokat - azt viszont nem, hogy ezek milyen fajta adatok lehetnek.
(A dolog persze kicsit bonyolultabb ennl, mivel nem minden video-adatfolyam
tehet brmilyen formtum trolba, de ezzel most ne trdjnk.)
A vicleofjlok ltalban tbb svbl (track) llnak: egy videosvbl (hang
nlkl), s egy vagy tbb audiosvbl (kpet nem tartalmaz hangsvbl).
A svok jellemzen ssze vannak kapcsolva: a hangsvok pldul jelzket
tartalmaznak, amelyek a kp s a hang sszehangolst segtik. Az egyes s
vokhoz metaadatok is rendelhetk, pldul a kp oldalarnya vagy a hangsv
nyelve. A trolknak szintn lehetnek metaadataik, pldul a vide cme, a
vide "bortkpe", (tv-msorok esetben) az epizd sorszma, s gy tovbb.
Rengeteg vicleotrol-formtum ltezik. A legnpszerbbek kz tartoz
nak pldul az albbiak:
MPEG-4
Az MPEG-4 fjlok kiterjesztse ltalban .mp4 vagy .m4v. Az MPEG-4
trol az Apple rgebbi QuickTime trolformtumn (.mov) alapul.
Az Apple webhelyn megtekinthet filmelzetesek mg mindig a rgi
QuickTime formtumot hasznljk, az iTunes-rl rendelt mozifilme
ket azonban MPEG-4 trolha csomagolva kapjuk meg.
Flash Video
A Flash-videofjlok kiterjesztse ltalban .flv. A Flash-videk ksz
tsre - nem meglep mdon - az Adobe Flash programot hasznl
jk. A Flash 9.0.60.184 (ms nven: Flash Player 9 Update 3) eltt ez
volt az egyetlen trolformtum, amelyet a Flash tmogatott, a Flash
jabb vltozatai azonban mr az MPEG-4 trolt is ismerik.
Ogg
Az Ogg-fjlok kiterjesztse ltalban .ogv. Az Ogg nylt szabvny,
amely tmogatja a nylt forrst, s nem veri bilincsbe semmilyen
szabadalom. A Firefox 3.5, a Chrome 4 s az Opera 10.5 beptett
tmogatst knl hozz, teht az Ogg trolformtumhoz, az Ogg
videkhoz ( "Theora" ) s az Ogg-hangfjlokhoz (" Vorbis" ) ezekben
5. fejezet
DOCS/HTML/enlencoding-guide.html).
Videokodekek
Amikor azt mondjuk, hogy " megnznk egy videt", valsznleg egy video
adatfolyam s egy audio-adatfolyam egyttesre gondolunk, de nem kt
5.
fejezet
kln fjlunk van, csak "egy videnk ", ami lehet egy AVI-fjl vagy- mond
juk- egy MP4-fjl. Ahogy az elz rszben emltettem, ezek csupn trol
formtumok, mint a ZIP, amelyben tbbfle fjl is lehet. A trolformtum
szabja meg, hogy a video- s audio-adatfolyamokat hogyan lehet egyetlen
fjlban trolni.
5.
fejezet
H.264
A H.264 kodek
retes: "MPEG-4 part 10", "MPEG-4 AVC ", "MPEG-4 Advanced Vicleo
Coding". A H.264-et az MPEG-csoport fejlesztette ki, s 2003-ban szabv
fejezet
Vide a Weben l
125
Theora
A Theora
VP8
A VP8
5. fejezet
Audiokodekek
Hacsak nem ragaszkodunk az 1927 eltt kszlt filmekhez, a videinkban
biztosan szerernnk hangsvot is. A videokodekekhez hasonlan az audio
kodekek is kdol algoritmusok, csak ppen ezek hang-adarfolyamok kdo
lsra szolglnak. Ahogy a videokodekekbl, gy az audiokodekekbl is l
teznek vesztesgesek s vesztesgmentesek, s mint a vesztesgmentes videk,
a vesztesgmentes audiofjlok is tl nagyok a webes felhasznlshoz, ezrt
a vesztesges audiokodekekre fogunk sszpontostani.
A krt valjban mg tovbb szkthetjk, mert a vesztesges audio
kodekeknek klnbz csoportjai lteznek. Hangot sok olyan helyen is alkal
maznak, ahol nincs kp (pldul telefonlsnl), s audiokodekek egsz sort
hangoltk kifejezetten beszd kdolsra. Ezekkel a kodekekkel nem CD-krl
fogunk zent lelopni, mivel az eredmny gy hangzana, mintha egy ngyves
gyerek nekelne egy hangtlcsrbe, egy Asterisk PBX-ben azonban igenis ezt
fogjuk hasznlni, mert a svszlessg nagy kincs, ezek a kodekek pedig az
emberi beszdet annak a mrernek a tredkre kpesek sszenyomni, amit
egy ltalnos cl kodekkel elrhetnk. Mindazonltal a bngszk s kls
bvtmnyek tmogatsnak hinyban a beszdre optimalizlt audiokodekek
soha nem terjedtek el igazn a Weben, ezrt inkbb az ltalnos cl veszte
sges audiokodekeket fogjuk az eltrbe helyezni.
Ahogy a fejezet "Videokodekek" dm rszben emltettem, amikor "videt
nznk", a szmtgpnk tbb dolgot csinl egyszerre:
5.
fejezet
Vide a Weben l
127
l. rtelmezi a trolformtumot.
2. Visszafejti a videofolyamot.
128
l Vide a Weben
5.
fejezet
lland bitsebessg
kdo/snak).
Az MP3-szabvny nem hatrozza meg pontosan, hogy miknt kell kdoini
az MP3-fjlokat (a dekdalsuk mdjt azonban pontosan lerja). A klnfle
kdoJk ms-ms pszichoakusztikus modellt kvetnek, amelyek jelentsen
eltr eredmnyt adnak, de ugyanazok a lejtszk mindet kpesek visszafej
teni. A legjobb ingyenes kdol a nylt forrs LAME, a legalacsonyabb bit
sebessgektl eltekintve pedig valsznleg ltalban vve is a legjobb kdol
(s pont).
Az MP3 formtumot szabadalrnak ktik, ami megmagyarzza, mirt nem
kpes a Linux kiegsztk nlkl MP3-fjlokat lejtszani. Lnyegben min
den hordozhat zenelejtsz tmogatja az nll MP3-fjlokat, az MP3-audio
folyamok pedig brmely videotrolba begyazhatk. Az Adobe Flash az
nll MP3-fjlokat s az MP4 videotrolba gyazott MP3-audiofolyamokat
is kpes lejtszani.
5. fejezet
Varbis
A Yorbist (http://en.wikipedia.orglwiki/Vorbis) gyakran hvjk "Ogg Vorbis"
nak, br ez technikailag helytelen, hiszen az "Ogg" csupn egy trolformtum
(lsd a fejezet "Videotrolk " cm rszt), a Yorbis audiofolyamok pedig ms
trolformtumokba is begyazhatk. A Yorbist nem kti semmilyen ismert
130
l Vide a Weben
5.
fejezet
Ami
Weben mkdik
kodekeket tmogatjk.
Knyvnk rsnak idejn a HTML5-videk helyzete gy festett:
5.
fejezet
Vide a Weben l
131
Jelenleg (2010. jnius 9-n) a Google Chrome "dev channel "-je, a Chro
mium napi kiadsai, a Mozilla Firefox napi kiadsai s az Opera ksrleti
kiadsai mind tmogatjk a WebM-trolba gyazott V P8-videosvokat
s Vorbis-audiosvokat. (A legfrissebb informcikrt ltogassunk el a web
mproject.org oldalra, ahol a WebM-et ismer bngszk letltsi olda
lra mutat hivatkozsokat is tallunk.)
Theora+Vorbis+Ogg
132
l Vide a Weben
IE
Flrefox
3.5+
5.0+
10.5+
5. fejezet
Arefmc
H.264+AAC +MP4
Satari
Cbrome
3.0+
5.0+
3.0+
2.0+
WebM
A helyzet egy ven bell jelentsen meg fog vltozni: a WebM-et tbb bn
gszben is megvalstjk, mghozz nem ksrleti formban, s a felhaszn
Jk frisstik a bngszjket ezekre az j vltozatokra. A kodekek tmogatsa
vrhatan az 5.3. tblzatban foglaltak szerint alakul majd.
5.3. tblzat
Theora+VorbiS+Og_g
3.0+
H.264+AAC+MP4
WebM
Az Internet Explorer
5.0+
3.5+
9.0+
10.5+
3.0+
5.0+
6.0+
4.0+
2.0+
11.0+
VP8-kodeket'; ami arra utal, hogy a Microsoft nem fogja mellkelni magt a kodeket.
b
audiosvbl ll vltozatot.
2. Ksztnk egy msik, WebM (VP8
5.
fejezet
Vide a Weben l
133
A H.264-videk
felhasznlsi engedlyvel kapcsolatos krdsek
Mieltt folytatnnk, fel kell hvnom a figyelmet arra, hogy a videk tbbszri
kdolsnak ra van. A nyilvnval kltsgen fell- mrmint azon tl, hogy a
tbbszri kdolshoz tbb id s tbb szmtgp-hasznlat szksges- a H.264
kdols videkhoz egy nagyon is valsgos kltsg kapcsoldik: a jogdj.
http:l!www.streamingmedia.com/Articles/Editorial/Featured-Articles/The-H.264-Licensing
Labyrinth-65403.aspx
5.
fejezet
fejezet
Vide a Weben J
135
Firefog g
'fldeoentodinganduploldlngforfuefo
Sifnus!ngf!rafuqg-Ustf!rmqgonYPyrS!II-
o.
5.1. bra
A Firefogg honlapja
5.
fejezet
Frcftu: prcwntcd th" Jltc (fircfogg.org) from 1sl:mg you to tnsUU sof'twnrt on yout computer.
Firefog g
sttuuslngFtrefogg - Usef!refoggonyoyrSrts-
.. yg
Stopptd
5.2. bra
5oft.- ht.ilation
Install add-ons only from authors whom you t rust.
Maliciaus software can damage you r computer or viclate you r privacy.
Cancel
5.3. bra
A Firefogg teleptse
5. fejezet
Vide a Weben l
137
Firefogg 1.0.0
Restart to cornplete the mstallat1on.
..
-- .\_
- :,.
' ---
---
fa'\.._.:
J.JIJ.J.V,_--'iol0..-:...
. .. .. - .
..
-.l.Oc
,.,.,.,.,.-\_.1
:-- :.O..
Close
5.4. bra
A Firefox jrainditsa
Firefog g
vid eo en toding and uploadlng for Firefox
Done
5.5. bra
138
A telepts sikerlt
l Vide a Weben
5.
fejezet
JfOOkmlo
r,,.,
"''._.;.
L0
..;"
;.
'
' .;.-- --- -------'""'1 =-----..,.;
: C X
"[;
p.j
""1Rt ;._
http/fiRtogg.g/
\:ilodlg-
Firefogg
vieleo en coding and uploading for Firetoll
"===:::c
-""-
http://firefogg.orrJ/mtkt[lftdex.html
5.6. bra
Ksztsnk videt!
............ ,.....
:LJ http://fireft,gg.org/mtktlindtx.html
TD Flrefogg- M.ke09g
v.., ln,... - ru
.
,..
Ma ke O gg V i d e o
Firefoga-vieleo encoding and u pioaCiing for Firefok
- Selectfile
{')
5.
''"'
A vicleofjl kivlasztsa
fejezet
Vide a Weben l
139
Preset (Sablon)
Metadata (Metaadatok)
Ezzel a lappal itt nem foglalkozom, de annyit elmondhatok, hogy
olyan metaadatokat adhatunk a videhoz, mint a vide cme s szer
zje. Az iTunes vagy valamelyik msik zenerendszerez segtsgvel
mr valsznleg adtunk metaadatokat a zenegyjtemnynkhz a mkdsi elv ugyanaz.
. (_...,....
...,
....._.w......... .,.-
---
5.8. bra
140
Kdoljunk videt!
l Vide a Weben
5.
fejezet
Csak a "Basic quality and resolution control " lapot (5.9. bra) nzzk meg
rszletesen, mert minden fontos bellts ezen tallhat:
5.
fejezet
New0r1ee.ns2006 dv
Preset: Web Video Theora, Vorbis 400kbs & 400px max width
Encodlng umye
r -b
OVideo Ouahty
f!
8Audio Ouahty
OVdeoCodec
1heor.
OAudo Codec
vorb1s
-YSI'*
Oont
5.9. bra
0.408> .
New0rleons2006 dv
Encoding ranye
Basic quality and resolution control
OTVIIO Pass Encod1ng
OAudiO Oualdy
OVIdeoCodec
OAudio Codec
OVideo
Widlh
OVideoHeght
3211
-===
113
httpJ!firtfogg.orgfmkt/indtX.htmlft
5.1 O. bra
142
l Vide a Weben
s_ fejezet
--
Li
&
__
Sl!IW 0gg
New0r1eans2006 dv
.eJ
Encoding range
Advanced video
'
encoding controls
controls
http://firrlogg.org/mlktfmdex.htmltli
5.11. bra
http://firtfogg.orglmi:tftndex.htm.-
__
ArefOgg
Y"tdeoln,-
IIIYSiow
o...,,
5.12.
vrunk, s vrunk .. . ).
fejezet
(http://v2v. celj/ffmpeg2theora/).
Az ffmpeg2theora egy nylt forrs, GPL felhasznlsi engedllyel ren
delkez alkalmazs Ogg-videk kdolshoz. Elre lefordtott binris vlto
zatai Mac OS X-re, Windowsra s jabb Linux-terjesztsekre is elrhetk. Az
ffmpeg2theora szinte brmilyen vicleofjlt elfogad bemenetknt, belertve
az tlagfogyaszti piacra sznt karnkorderek ltal ellltott DV-videkat is.
Az ffmpeg2theora-t a parancssorbl meghvva vehetjk hasznlatba.
Windowson kvessk a Start, Programs, Accessories, Command Prompt (Start,
Programok, Kellkek, Parancssor), Mac OS X-en pedig az Applications, Uti
lities, Terminal (Alkalmazsok, Segdprogramok, Terminl) tvonalat.
5.12. bra
!O
O% Transcoded
:.::
:.::
co
:;:
:.::
: ' ---------:
..:- a VSiow
o.....,
A kdols folyamatban
--
--v ideo-quality
--audio-quality
5. fejezet
--
H.264-videk kdolsa
a HandBrake segtsgvel
(Ebben a rszben a "H.264-vide " kifejezst a "Baseline profil H.264-vide
s low complexity profil AAC-audi egy MPEG4-trolban" helyett hasz
nlom. Ez az a kodek+trol kombinci, amelyet a Safari, az Adobe Flash,
az iPhone s a Google Android eszkzk beptve tmogatnak.)
A jogdj krdstl eltekintve (lsd a fejezet "A H.264-videk felhaszn
lsi engedlyvel kapcsolatos krdsek " cm rszt kicsit korbban) a H.264videk kdolsnak legegyszerbb mdja a HandBrake (http://handbrake.fr)
hasznlata. A HandBrake egy nylt forrs, GPL felhasznlsi engedllyel
rendelkez alkalmazs H.264-videk kdolshoz. (Rgebben ms video
formtumokat is tudott kezelni, de a legjabb vltozatban a fejlesztk gy
dntttek, hogy a legtbb formtum tmogatst elhagyjk, s minden
erfesztsket a H.264-videkra sszpontostjk.) A HandErake-bl elre
5.
fejezet
Vide a Weben l
145
5.13. bra
A forrsvide kivlasztsa
5. fejezet
'Selea.cCif'JITJ.Ie
i<OO:o'!2) -
.,.., es:
:1
..
jl1v.:u;t.
oo.z
.._ ..
dJiftgS"(Prl:)
] Pod5GR.I)p0rt
"""'
IOI!oEI!!!!)lr,1ooJ......
1ZD> <80
j""
Asced.P
...., KeepAspertJlat!D
pUe Stra:t
SQ:'!'
C2D
'h$480
5.14. bra
5.
fejezet
Vide a Weben l
147
BAUnivet<HII
.....
-
B ........
-....
HighPt-ofie
Bl<Y
oa
..
k
Applenr teoacy
iPhone leoacy
iPodlt!:c;J<K:Y
Tq>
'"' U
Q?
lot
5. l 5. bra
li Souru Ci Start m Add to Queue ffiJ ShowQueue lill Previ- [ll] A.ctMty Window
Sourcc:.
Tlte:
lt(00:02:22)
l Chapten:
li:..=3
ltYou;tl
c=3
Pr
0.../Jti::Jn: 00:02:22
, ------
[K"Re
]l':t"..oefiescze
Pod5G5lClJ)Ort
Souce:
120x<480
As;:Ject.Ratio:
1.36
: Heqt:
KeepAspectRolltlo
.,
....,,..."
,_.
==
'""
,...
D
u
n-
ScanComplet:ed
5.1 6. bra
148
l Vide a Weben
5.
fejezet
.. -.-
--
.. - -
,- ..... - .. - .
.-. - '
-.-
b(OO:!)?:Z2)
Chapters:
tt..ouc;t.
-
--- 'kJ-s!ij
CUo"l:
00:1l2:22
---
"''
Output Scttlnp (Preset: Custom)
Ccrtaher:
'""' Fie
luroefilsize
rl)Webopbnczed f)PodSGRQUt
""""'
<-
ScMce: 720x480
AspectRlo:
_,Ih-'
tt;!lll
KAs!mB
-li'i'-
1.36
"""'Wid:h
f)CuR:OfTI
Top
Loft
r-
o--:p
Rdt
o
.;..
"""""
Suned
, r--
5.1 7. bra
-=a:W--.--a-:.o....w.,.
____"...",.
'""'- -
5. fejezet
Quality (Minsg)
5. fejezet
-:------
Souru i; Sbrt. (Add to Queue ShowQueue
PrN!ew
[IIJ A.ttMtyWindow
Source
_,
7"""
Pl'
""'-'
oo,oz,zz
[K>1Fie
__
--:JrJla'oeflesiZe
fil
l ll
0 web [liPodSG
.......
YldeoeodM:
!"-"'...!. "">"
Framerate(R>S):
3e
il
e Target.Size(MB):
8 Avostrate(l!b9s):
c Const.-tQualty:
2-Passfnccd'lo
60.78"lloRf:20
TU'bofirstPass
..
5.18. bra
!
:l
5. fejezet
._...,..
..
"Wl!bQJibliZed
PodSG
5.19. bra
... ...
Sbrt
....
...
,_",_",..,.
llie.,I(00:02:22}
Prtvttw
--
[II]AcbYityWndow
.,.._
,,.,.,._"
.....r
...
R.: C:
Duqlui:SetttnQs(Pteu.tom)
.... Re
Yidlol'bfs'l1lllo
.....
" Wtlboptmacj
lMQBf'-Sile
...... .._.
- --.
Audiolr-.b
l:iiiiiii:J
Selectedtradt:Newtredo.
"""
[--
,:... -
....
)IU
"""'
"""""""'
MC(foMC)
l.
"'-
5. 20 . bra
OOb)'Pt-GLOQic n
.......... ..,...
.
ORC
.[.....::;JO
Sln!Pwat.Qtf.z)
..
,,.
8blte('li:bpJ)
ORC
0.0
.l
5. fejezet
;,_,;!ifAJ
" ......
!J(OO:Ill-.m
l ' C:3
tt-nJu;to
C:3 t'Uabon:
001ll:22
U!!iiiJ
fle: C:fp9.,..M'W
output Sdtfroc)l' (PrH: eu.tom)
[ijifit=::;J U L9eNesize
cont-.:
(l]Wflb
PodSG
lti-----,,
AudioTradu:
Tradi:NIMTrd
s-u
1Track
Aldo Codec:
llMC->
Sotne
f4xdDoon
ll-
At.doCodac
P4xdaown
AN:.(JMQ
ProL.ogocn
Sarrcllwate
ate(lrH;z)
-5.21. bra
Ksztsnk videt!
5.22. bra
Trelem,
!ar.u
ll- l o
lllnte(Kbps)
ifj padawan!
http:llhandbrakefrldownloads2.php cmrL
5. fejezet
--vb
kdols sorn
-- width 320
--vb 600
--two-pass
--turbo
--inputpr6.dv
--outputpr6 .mp4
eltt, hogy ezt a rszt rtam. gy nem csoda, hogy mg nem volt nagy v
lasztk kdoleszkzkbl s tmutatkbl. A helyzet persze egyszer154
l Vide a Weben
5. fejezet
mkclean.html).
Kszen llunk? Rendben. A parancssorbl indtsuk el az ffmpeg-et param
terek nlkl, s gyzdjnk meg rla, hogy a fordts sorn belekerlt a VP8tmogats:
you@localhost$
f!p!g
--enable-libvpx-vpB
5. fejezet
parti tions 4
O -g 250 -mb_static_threshold O
-skip_threshold O -cp:nin l qmax 51 -i pr6. dv -vcodec li.bvpx_vp8
-altref l-lag 16 -keyint_min
-
-an
-f rawvideo -y NUL
partitions 4
O -g 250 -mb_static_threshold O
O -cp:nin l qmax 51 -i pr6. dv -vcodec li.bvpx _vp8
-b 614400 -s 320x240 -aspect 4:3 -acodec vorbis -y pr6 . mkv
156
l Vide a Weben
5.
fejezet
pr 6 .rnkv pr 6. webrn
s ennyi az egsz!
s vgl,
lerkd!
Felmerlhet bennnk a krds, hogy ha ez egy HTML-rl szl knyv amiben eddig biztosak volrunk -, akkor hol a lerkd? Nos, a HTML5-ben
ktfle mdszerrel gyazhatunk be egy videt egy weboldalba, de mindket
thz szksgnk van a <video> elemre. Ha csak egy videofjlunk van,
egyszeren hivatkozhatunk r egy
src
"
src= .. .
"> cmkvel:
5.
fejezet
Vide a Weben l
157
width= "320
Ez pedig egy olyan vide, amely az oldal betltsekor nem tltdik le azonnal:
<video src= "pr 6. webm
l Vide a Weben
5.
fejezet
ll @namespace
ll @description
http:lldiveintomark.orglprojectslgreasemonkeyl
Ensures that HTMLS video elements do not autoplay
ll @include
ll ==IUserScript==
var arVideos = document.getElementsByTagName ('video') ;
for (var i = arVideos.length
l; i >= O;
i--)
elmVideo. autoplay
false;
Vide a Weben l
159
centrels>
<seurce src="pr6 .mp4" type=' videe/mp4; cedecs= "avcl. 42E01E, mp4a. 40.2 '" >
<source src="pr6. wetm" type=' videe/webm; cedecs= 'vp8, verbis"' >
<source src="pr6.ogv" type=' videe/egg; cedecs= "theera, verbis" >
</videe>
>
5.
fejezet
5.
fejezet
Vide a Weben l
161
162
J Vide a Weben
5.
fejezet
html5-hardware-accelerated-jirst-ie9-platform-preview-available-for-developers.
aspx), hogy az IE 9 vgleges vltozata tmogatui fogja az MPEG-4 trolban
elhelyezett, H.264-videosvval s AAC-audiosvval rendelkez videofjlokat,
akrcsak a Safari az asztali Mac, illetve a Mobile Safari az iOS rendszereken.
De mi a helyzet az Internet Explorer rgebbi vltozataival- pldul az IE
8-cal vagy az eltte kiadott vltozatokkal? Nos, a legtbb Internet Explorer
felhasznl telepti az Adobe Flash bvtmnyt is, mrpedig a Flash jabb
vltozatai (a 9.0.60.184-estl kezdve) tmogatjk az MPEG-4 trolban el
helyezett, H.264-videosvval s AAC -audiosvval rendelkez videofjlokat.
A Safarira elksztett H.264 kdols videkat (lsd a fejezet "H.264-videk
kdolsa a HandBrake segtsgve!" cm rszt) lejtszhatjuk egy Flash
alap videolejtszban is, ha szleljk, hogy a ltogat nem rendelkezik
HTML5-kpes bngszvel.
A FlowPlayer (http://fiowplayer.orgl) egy nylt forrs, GPL felhasznlsi
engedly, Flash alap videolejtsz. (Kereskedelmi felhasznlsi engedllyel
is elrhet; lsd a http:llflowplayer.orgldownload/ cmen.) A FlowPlayer mit
sem tud a <video> elemrl, s nem kpes varzslattal Flash-objektumm
alaktani egy <v ideo> cmkt, de a HTML5-t felksztettk az ilyen esetek
kezelsre, hiszen egy <video> elembe begyazhatunk egy <object> ele
met. A HTML5-videkat nem tmogat bngszk figyelmen kvl hagyjk
a <video> elemet, s helyette egyszeren a begyazott <object> elemet
jelentik meg, amely meghvja a Flash bvtmnyt, s lejtssza a filmet a Flow
Playeren keresztl, mg a HTML5-videkat ismer bngszk megkeresik az
ltaluk lejtszhat videoforrst, s azt jtsszk le, teljesen figyelmen kvl
hagyva a begyazott <object> elemet.
Az utols mondat az egsz kiraksjtk kulcsa: a HTML5 kimondja, hogy
a <video> elemek minden gyermekt (a <source> elemeket kivve) telje
sen figyelmen kvl kell hagyni. Ez teszi lehetv, hogy az jabb bngszk
lejtsszk a HTML5-videkat, mikzben a rgebbi bngszk elegnsan
a Flash-re szortkoznak, anlkl, hogy brmilyen JavaScript-trkkre lenne
5.
fejezet
Vide a Weben l
163
Theora/Vorbis/Ogg
pr6.ogv pr6. dv
H.264/AAC/MP4
##
VP8/Vorbis/WebM
partitions 4
O -q 250 -mb_static_threshold O
O -qmin l qmax 51 -i pr6. dv -vcodec libvpx_vp8
partitions 4
-skip_threshold
preload controls>
5. fejezet
l'
/>
Tovbbi olvasmnyok
(http:llhacks.mozilla.org/2009/09/theora-1-1-re!eased/)
Configuring servers for Ogg media" (https:lldeve!oper.mozil!a.orglen/Con
"
figuring_servers_for_Ogg_media)
"Encoding with the x264 codec" (http:llwww.mplayerhq.hu/DOCSIHTMLI
enlmenc-feat-x264. html)
Video type parameters" (http://wiki.whatwg.orglwiki/Video_type_para
"
meters}
Zeneader Vicleo JS (http://videojs.com)- egyni vezrlk HTML5-videkhoz
Simon Pieters: Everything you need to know about HTML5 audio and
"
video" (http:lldev.opera.comlartic!es/viewleverything-you-need-to-know-about
htm!5-video-and-audiol )
6.
fejezet
Ugorjunk fejest!
A helymeghatrozs (geolokci) annak a mvszete, hogy kidertsk, hol is
vagyunk a vilgban, s (ha akarjuk), megosszuk ezt az informcit azokkal,
akikben megbzunk. A tartzkodsi helynkrl sok minden rulkodik - az
IP-cmnk; a drt nlkli hlzati kapcsolatunk; az adtorony, amellyel a mo
biltelefonunk kommunikl; de egy GPS-eszkz is megmondhatja a szlessgi s
a hosszsgi fokot az rben kering mholdakrl kapott informcik alapjn.
Geolocation API
167
3.5+
5.0+
5.0+
3.0+
2.0+
Mutasd a kdot!
A helymeghatroz API kzppontjban a globlis
egy j tulajdonsga ll: a
navigator
navigator .geolocation.
objektum
A helymeghatroz
} else {
l l nincs beptett tmogats; prbljuk meg esetleg a Gearst?
}
}
6. fejezet
6.1. bra
A helymeghatroz informcis sv
6.
fejezet
169
= position.coords.latitude;
= position. coords.longitude;
var longitude
ll
double
tizedfok pontossggal
coords.longitude
double
tizedfok pontossggal
coords.altitude
coords.accuracy
double
mterben
coords. altitudeAccuracy
mterben
coords.heading
coords.speed
mter/msodpercben
timestarop
DOMTimeStamp
170
()
objektum
6.
fejezet
Ezek kzl csak hrom tulajdonsg (coords .lati tude, coords .longi tude
s coords. accuracy) jelenlte garantlt. A tbbi null rtket is kaphat,
az eszkz s a vele kommunikl helymeghatroz httrkiszolgl kpess
geitl fggen. A heading (irny) s speed (sebessg) tulajdonsgok kisz
mtsa a felhasznl elz tartzkodsi helye alapjn trtnik (amennyiben
ez rendelkezsre ll).
A hibk kezelse
A helymeghatrozs bonyolult, mert sok minden kisiklathatja a mveletet.
A felhasznli beleegyezst" mr emltettem. Ha a webalkalmazsunk meg
"
szeretn tudni a felhasznl tartzkodsi helyt, de a felhasznl nem akarja
megadni azt, meg vagyunk lve. Mindig a felhasznl nyer. De hogyan fest
mindez kdban? gy tnik, a g etCurrentPosition() fggvnynek egy
msodik paramtert kell tadnunk- egy hibakezel visszahv fggvnyt:
navigator.geolocation.getCurrentPosition(
show_map, handle_error)
zatban lthatjuk.
6.3. tblzat A PositionError objektum tulajdonsgai
sek
nous
code
short
felsorol rtk
messa_g_e
DOMString
PERMISSION
DENlED
POSITION
UNAVAILABLE
TIMEOUT
UNKNOWN _ERROR
"
"
koztatsi rendszer, amelyet e fellet jellemzi hasznlnak, a World
Geodetic System (2d) [WGS84] (geodziai vilgrendszer). Egyetlen
ms vonatkoztatsi rendszer sem tmogatott." A Nemzetkzi rlloms
Fld krli plyn mozog, ezrt az llomson tartzkod rhajsok
6.
fejezet
rtetmezs
enableHighAccuracy
boolean
false
timeout
long
(nincs alaprtelmezs)
ezredmsodpercben
maximumA9:e
long_
ezredmsode.ercben
6. fejezet
{ maximumAge: 7 5000}) ;
(75
75 msod
60 msodperccel (60
OOO ezredmsod
(10:00 AM).
6.
fejezet
nunk neki - egyet siker, egyet pedig kudarc esetre-, s ugyangy elfogad
egy PositionOptions objektumot (az imnt ltott tulajdonsgokkal).
A klnbsg annyi, hogy a visszahv fggvny minden alkalommal meghvdik,
amikor a felhasznl helyzete megvltozik Nincs szksg teht a tartzko
dsi hely aktv lekrdezsre: az eszkz hatrozza meg az optimlis lekrdezsi
idkzt, s gondoskodik a visszahv fggvny meghvsrl, amikor gy
tli meg, hogy a felhasznl helyet vltoztatott. Ezt felhasznlhatjuk pldul
arra, hogy egy trkpen jelezzk a felhasznl mozgst; utastsokat adjunk
neki, hogy merre menjen; s gy tovbb. A lehetsgeknek csak a fantzink
szab hatrt.
Maga a watchPosition() fggvny egy szmot ad vissza, amelyet
rdemes elraktroznunk valahol. Ha mr nem kvnjuk figyelni a felhasz
nl helyvltoztatst, ezt a szmot tadva hvjuk meg a clearWatch()
fggvnyt, s az eszkz abbahagyja a visszahv fggvnynk hvogatst.
A dolog ugyangy mkdik, mint a JavaScriptben a setinterval () s
clearinterval ()
fggvnyek.
fejezet
geo_position_js.getCurrentPosition(geo_success, geo_error);
6. fejezet
Nzzk vgig egyenknt a lpseked Elszr is, kifejezetten meg kell hvnunk
egy init() fggvnyt, amely true-t ad vissza, ha valamelyik tmogatott
helymeghatroz API elrhet:
if (geo_yosition_js.init()) {
geo
geo_position_js.getCurrentPosition(geo_success, geo_error);
p.coords.latitude +
longitude "+p.coords.longitude);
177
geo_position_js.getCurrentPosition(geo_success, geo_error);
'
);
6.
fejezet
function show_map(loe) {
$("1geo-wrapper") .css({'width':'320px','height' :'350px' ));
var map new GMap2 (document .getElementByid( "geo-wrapper '));
var center new GLatLng (loe. eoords .latitude, loe. coords. longitudel;
map.setCenter(center, 14);
map.addControl (new GSmallMapControl ());
map.addControl (new GMapTypeControl ());
map.addOverlay (new GMarker (center, {draggable: false, title: 'You are here
(more or less)")));
)
Tovbbi olvasmnyok
05108/Blackberry-Browser-Amp-GPS.aspx)
A Nokia helymeghatroz API-ja (http:llwww.forum.nokia.com/infocenterl
index.jsp?topic=!Web_Developers_Library!GUID-4DDE3IC7-ECOD4EEC-BC3A-AOB0351154F8. html)
A Palm helymeghatroz API-ja (http:l!developer.palm.comlindex.php?
option=com_content&view=article&id=1673#GPS-getCurrentPosition)
Az OMTP BONDI helymeghatroz API-ja (http:llbondi.omtp.org!I.O/
apislgeolocation.html)
geo.js (http:llcode.google.comlplgeo-location-javascriptl)- a helymeghat
roz API burkol parancsfjlja
7.
fejezet
a webalkalmazsokban
Ugorjunk fejest!
A maradand helyi trols az egyik olyan terlet, ahol a beptett gyflprog
rarnak hagyomnyosan elnyt lveznek a webalkalmazsokkal szemben.
A beptett alkalmazsok szmra az opercis rendszer jellemzen egy el
vont rteget biztost az olyan, alkalmazshoz kapcsold adatok trolsra s
kinyersre, mint a felhasznli belltsok vagy a futsi llapot. Ezek az
adatok troldhatnak a rendszerler adatbzisban (bellrsjegyzkben),
INI-fjlokban, XML-fjlokban s ms helyeken is, a rendszer hagyomnyai
nak megfelelen. Ha egy beptett gyflalkalmazsnak a kulcs-rtk pro
kon tlmutat helyi trolsra van szksge, hasznlhat sajt adatbzist, sajt
fjlformtumot vagy ms, tetszleges megoldst.
A webalkalmazsok hagyomnyosan nem rendelkeznek ilyen luxusszol
gltatsokkal. A Vilghl trtnetnek korai idszakban feltallrk ugyan
a stiket (cookie), amelyek valban hasznlhatk is kis mennyisg informci
maradand helyi trolsra, de szmos htrnyuk van, amelyek vloknak
bizonyulharnak:
7. fejezet
181
az gyflgpen...
Ezeknek a cloknak az elrsre szmos megolds szletett, de vgssoron gy vagy gy - egyik sem bizonyult kielgtnek.
7. fejezet
Bemutatkozik a HTML5-trol
Az, amit n "HTMLS-trolnak " (HTMLS Storage) nevezek, valjban
a Web Starage nevezet szabvny, amely egy idben rsze volt magnak a
HTMLS -szabvnytervezetnek, de ksbb - szmunkra rdektelen zlet
politikai okokbl - nll lersba klntettk el. Egyes bngszgyrtk
7. fejezet
183
"
"
"Local Storage (helyi trol) vagy " DOM Storage (DOM-trol) nven is
hivatkoznak r. A helyzetet mg jobban bonyoltja, hogy bizonyos hasonl
cl, kidolgozs alatt ll szabvnyok, amelyekre a fejezerben mg kitrek,
hasonl nevek alatt futnak.
Mi is valjban a HTML5-trol? Egyszeren megfogalmazva, egy md
szer, amellyel a weboldalak nevestett kulcs-rtk prokat trolhatnak hely
ben, az gyfl webbngszjn bell. A stikben trolt adatokhoz hasonlan
ezek az adatok is megrzdnek, amikor tvozunk a webhelyrl, bezrjuk
a bngszablakot, kilpnk a bngszbl, vagy ms hasonl mveletet vg
znk. A stikkel ellenttben azonban ezeker az adatokat soha nem visszk t
egy tvoli webkiszolglra (hacsak valamilyen rejtlyes okbl kifolylag nem
tesszk meg ezt sajt kezleg). Ezen fell a maradand helyi trolsra ir
nyul (fentebb ismertetett) korbbi ksrletekkel ellenttben a HTML5trolt a webbngszk belsleg valstjk meg, teht ott is elrhet, ahol
nem llnak rendelkezsre kls bngszbvtmnyek.
Mely bngszkrl is van sz? Ahogy a 7.1. tblzatban lthatjuk, a
HTML5-t lnyegben minden bngsz legjabb vltozata tmogatja mg az Internet Explorer is!
7.1. tblzat
3.5+
8.0+
4.0+
4.0+
10.5+
2.0+
2.0+
! null;
Azt is megreherjk, hogy nem magunk rjuk meg ezt a f ggvnyt, hanem
a Modernizr-t hasznljuk (lsd a 2. fejezet "Modernizr: egy HTML5-szlel
knyvtr" cm rszt) a HTML5-trol tmogatsnak feldertsre:
if (Modernizr .localstorage) {
l l A window. loealS torage elrhet!
) else {
184
7.
fejezet
A HTML5-trol hasznlata
A HTML5-trol kulcs-rtk prokon alapul. Az adatokat egy nevestett
kulccsal troljuk, s ugyanezzel a kulccsal nyerhetjk ki ket:
interface Storage (
getter any getltem (in DOMString key);
setter creator void setitem (in DOMString key, in any data);
);
localStorage.get!tem("bar");
l l ...
localStorage.setitem("bar", foo);
localStorage["bar" l ;
l l ...
localStorage["bar"]
7. fejezet
foo;
l 185
};
Ha a removertem ()-et egy nem ltez kulccsal hvjuk meg, nem csinl
semmit.
Vgl, van olyan tulajdonsg is, amellyel megkaphatjuk a trolterleten
tallhat rtkek szmt, illetve sorszm szerint vgigmehetnk az sszes kul
cson (hogy kiolvassuk az egyes kulcsok nevt):
interface Starage
};
7.
fejezet
l;
A hand le
sek
key
String
oldValue
tetszleges
j elemet
hoztunk ltre
newValue
tetszleges
Az
url
String
Az url tulajdonsg neve eredetileg uri volt, s egyes bngszk ez utbbi tulajdonsggal
kerltek piacra, mg az eltt, hogy a szabvnylers megvltozott volna. A lehet legteljesebb
kr egyttmkds rdekben clszer elbb az url tulajdonsg ltezst ellenriznnk,
majd- ha nem ltezik- megvizsglnunk, hogy ltezik-e az uri tulajdonsg.
starage () vissza
187
EXCEEDED
fejlesztk tovbbi trolterletet ignyeljenek. Vannak ugyan bngszk pldul az Opera -, amelyek lehetv teszik a felhasznlnak, hogy szab
lyazza az egyes webhelyek trhelykvtjt, de ez kizrlag a felhasznltl
fgg; a webfejleszt nem ptheti be a webalkalmazsaiba.
7. fejezet
{
(! supportsLocalStorage ( )) { return false; )
localStarage["halma.game. in.progress "l =gGameinProgress;
for (var i= 0; i< kNumPieces; i++) {
localStarage[ "halma.piece. " + i + ". row "l = gPieces[il .row;
localStarage [ "halma.pie ce." + i + ".column "l
gPieces[il .column;
if
}
localStarage ["halma.selectedpiece "l = gSelectedPieceindex;
localStorage["halma.selectedpiecehasmoved"l gSelectedPieceHasMoved;
localStarage["halma.movecount "l = gMoveCount;
return true;
Amint lthatjuk, a kd a
(a
gGameinPrag ress
localStarage
gPieces
JavaScript-tmbn),
gSelectedPieceindex
gSelectedPieceHasMaved
gMoveCaunt
res umeGame ()
hogy vannak-e a helyi trolban mentett adatok egy folyamatban lev jtk
llapotrl, s ha igen, visszalltja az rtkeket a localStarage objektum
segtsgvel:
function resumeGame ()
if
==
"true");
{ return false;}
7. fejezet
189
l
gNumPieces= kNumPieces;
gSelectedPieceindex
"true";
nunk. Az a jelz pldul, amelyik megadja, hogy van-e folyamatban lev jtk
(gGameinProgress), Boolean tpus. A saveGameState () fggvnyben
csak elraktroztuk ezt a jelzt, s nem foglalkoztunk az adattpusval.
localStarage [ "halma.game.in. progress "l = gGameinProgress;
"true");
7. fejezet
7. fejezet
Firefox
Satari
Chrome
4.0+
4.0+
iPhone
10.5+
Android
3.0+
l 191
7. fejezet
'Y'",
Tovbbi olvasmnyok
HTML5-trol:
7. fejezet
193
"
"Unlock local storage for mobile Web applications with HTML5 (http:/1
www.ibm. comldeveloperworks/xmlllibrarylx-html5mobile2/), oktatanyag
at IBM DeveloperWorks oldaln
"
"Internet Explorer Has Native Support for Persisrence?!?! (http:llcoding
inparadise. orgiweblog/2005/08/ ajax-internet-explorer-has-native. html}, a
jsdoc/HEAD/dojox.storage.manager)
trunklstoragel)
Web SQL Database:
introducing-web-sql-databasesl)
Web Database-bemutat (http:llhtml5demos.comldatabase)
persistence.js (http:llzefme/2774/persistence-js-an-asynchronous-javascript
orm-for-html5gears), egy "aszinkron JavaScript OR M", amely a Web
IndexedDB!)
html5-database-apis-and-the-road-to-indexeddb!)
(http:llhacks.mozilla.org/20l0/06/comparing-indexeddb-and-webdatabase/)
8.
fejezet
Bontsuk a kapcsolatot!
Ugorjunk fejest!
Mi az a kapcsolat nlkli webalkalmazs? Az elnevezs els hallsra nellent
mondsnak tnik, hiszen a weboldalakat letltjk, hogy megjelenthessk,
a letlts pedig hlzati kapcsolatot felttelez. Hogyan tlthetnk le valamit,
ha nem kapcsoldunk a hlzatra? Termszetesen sehogy- akkor viszont
igen, amikor a kapcsolat l. A kapcsolat nlkli (offiine) HTML5-alkalmazsok
pontosan gy mkdnek.
A legegyszerbb formjban egy kapcsolat nlkli webalkalmazs csupn
egy sor URL, amelyek HTML-, CSS- vagy JavaScript-fjlokra, kpekre s
egyb erforrsokra mutatnak. A kapcsolat nlkli webalkalmazs kezdol
dala erre a jegyzkfjlnak (manifest fjlnak) nevezett listra mutat, ami nem
ms, mint egy egyszer szvegfjl, ami valahol a webkiszolgln tallhat.
A kapcsolat nlkli HTML5-alkalmazsokra felksztett webbngszk ki
olvassk az URL-cmeket a jegyzkfjlbl, letltik az erforrsokat, helyi gyors
trba rjk ket, s nmkden frisstik a helyi msolatokat, ha az eredetijk
megvltozik Amikor a webalkalmazst hlzati kapcsolat nlkl prbljuk
elrni, a webbngsz automatikusan a helyi msolatra vlt.
A fentieken kvl szinte minden msrl mi, a webfejlesztk gondoskodunk.
A DOM-ban van egy jelz, amely tjkoztat rla, hogy hlzati kapcsolattal
vagy anlkl dolgozunk, s bizonyos esemnyek is elindulnak, amikor az l
lapot megvltozik (vagyis amikor az egyik pilanatban nincs kapcsolat, aztn
ismt van, vagy fordtva), de lnyegben ennyi. Ha az alkalmazsunk adato
kat hoz ltre vagy llapotot ment, a mi feladatunk helyben elraktrozni ezeket
az informcikat (lsd a 7. fejezetet), amg nem l a kapcsolat, majd sszehan
golni azokat a tvoli kiszolglval, amint ismt kapcsoldtunk a hlzatra.
Ms szavakkal, a HTML5 kpes kapcsolat nlkl is megrizni a webalkal
mazsunkat, de az mr tlnk fgg, hogy mit csinlunk, amikor a kapcsolat
8.
fejezet
Flrefox
IE
Satari
Chrame
-------------.
ra
iPhone
_c../
_ ___
Android
../
A gyorstrjegyzk
A kapcsolat nlkli webalkalmazsok mkdshez elengedhetetlen egy
gyorstrjegyzk (cache manifest). Ahogy mr emltettem, a jegyzk sorolja fel
az sszes erforrst, amire a webalkalmazsnak szksge lehet, amikor nem
kapcsoldik a hlzathoz. Ahhoz, hogy lehetv tegyk az erforrsok letl
tst s gyomrba rst, a <html> elemben a manifest jellemzvel hivatkoznunk kell a jegyzkfjlra:
</body>
</htm l>
8. fejezet
fejezet
Hlzati szakaszok
Nzznk egy kicsit bonyolulrabb pldt! Tegyk fel, hogy azt szeretnnk,
hogy az raprogramunk nyomon kvesse a ltogatkar egy tracking.cgi nev
parancsfjl segtsgve!, amely dinamikusan tltdik be egy <img
src>
8. fejezet
Tartalk szakaszok
A jegyzkfjlokban egy msik tpus szakasz is lehet: a tartalk szakasz.
A tartalk szakaszokban azt adhatjuk meg, hogy mivel helyettesthetk azok
fejezet
8.
fejezet
Az esemnyfolyam
Amit eddig a kapcsolat nlkli webalkalmazsokrl, a gyorstrjegyzkekrl s
a kapcsolat nlkli alkalmazs-gyorstrakrl ("appcache" ) mondtam, flig
meddig hkuszpkusznak tnhet: az erforrsok letltdnek, a bngsz
dmseket hoz, s minden "csak gy mkdik". Ezt persze nem hisszk el,
ugye? Vgtre is, webfejlesztsrl van sz, ahol soha semmi nem mkdik
"
"csak gy .
Elszr is az esemnyfolyamrl, konkrtan a DOM-esemnyekrl kell
szt ejtennk. Amikor a bngsznk megnyit egy oldalt, amely egy jegyzk
fjira mutat, egy sor esemnyt indt el a window. applicationCache
objektumon (lsd albb). Tudom, hogy bonyolultnak tnik, de higgyk el,
ennl egyszerbben nem tudnm megfogalmazni gy, hogy ne hagyjak ki
fontos informcikat. me a folyamat:
l. Amint szrevesz egy manifest jellemzt a <html> elemben, a bn
8.
fejezet
A jegyzkfjl egy 404-es (Page Not Found- "Az oldal nem tallhat ")
vagy 410-es (Permanemly Gone- "Vglegesen trlve") HTTP-hibt ad
ViSSZa.
202
l Bontsok a kapcsolatot!
8.
fejezet
A hibakeress mvszete,
avagy "lj meg!
fejezet
eaehe-Control
fejlcek s az utols
8.
fejezet
42
c lock. js
clock.css
fejezet
CACHE MANIFEST
t rev 43
clock.js
clock.css
ptsnk egyet!
Emlksznk mg a Halma-jtkra, amelyet a 4. fejezetben ksztettnk (lsd
ott az "Egy teljes plda" cm rszt), majd ksbb kiegsztettnk, hogy kpes
legyen maradand helyi trol ba memeni a jtk llapott ( "A HTML-trol
mkds kzben")? Nos, itt az ideje, hogy a Halma-jtkunkat levlasszuk
a hlzatrl.
Ehhez egy jegyzkfjlt kell ksztennk, amely felsorolja az sszes er
forrst, amire a jtknak szksge van. Van ugye a f HTML-oldal, egy
JavaScript-fjl, amely a jtk kdjt tartalmazza, s .. . ennyi. Nincsenek k
pek, mivel a grafikt teljes egszben programbl, a Canvas API-n keresztl
vezreljk (lsd a 4. fejezetet), s minden szksges CSS-stlus egy <style>
elemben tallhat a HTML-oldal elejn. A jegyzkfjlunk teht gy fest:
CACHE MANIFEST
halma.html
../halma-localstorage.js
A gyorstrjegyzkben
8.
fejezet
(. ./halma-localstoragejs). Pon
Tovbbi olvasmnyok
Szabvnyok:
bit.lyleCkWZa)
A bngszgyrtk dokumentcii:
"
"Offline resources in Firefox (https:lldeveloper.mozilla.org/En/Ofjiine_
resources_in_Firefox) a Mozilla Developer Center webhelyn
"
"HTML5 Offline Application Cache (http:lldeveloper.apple.comlsaforil
libraryldocumentation/iPhone/Conceptual/Safori]SDatabaseGuide!Offline
ApplicationCache!OfjiineApplicationCache.html), a "Safari Client-Side Storage
and Offline Applications Programming Guide" (http://developer.apple.com/
8.
fejezet
saforillibraryldocumentationliPhone/Conceptual!Safori]SDatabaseGuide!
!ntroductionl!ntroduction.htm l} rsze
Oktatanyagok s bemutatk:
Andrew Grieve: "G maii for Mobile HTMLS Series: Using Appcaehe to
Launeh Offline-part 2" (http:llgooglecode.blogspot.com/2009/05/gmail
for-mobile-html5-series-part-2.html}
for-mobile-html5-series-part-3.html)
"
(http:lljonathanstark.com/blog/2009/09/27/debugging-html-5-offline
application-cachel)
Paul Ro uget: "An HTMLS offline image editor and u pioader applieation
"
9. fejezet
rlt rlapok
Ugorjunk fejest!
Mindenki ismeri a webes rlapokat, nem igaz? Ltrehozunk egy <form>
cmkt, hozzadunk nhny <input type="text"> s taln egy <input
type="password"> elemet, az rlapot egy <input
type="submit">
Helyrz szveg
Az els tbbletszolgltats, amellyel a HTML5 kiegszti a webes rlapokat,
az a lehetsg, hogy helyrz szveget helyezhetnk el a beviteli mezkben.
A helyrz szveg addig lthat a beviteli mezben, amg a mez res, s
nincs rajta a fkusz. Amint a mezbe kattintunk (vagy a tabultorbillenty
vel lltjuk r a fkuszt), a helyrz szveg eltnik.
Valsznleg tallkoztunk mr helyrz szvegekkel. Ahogy a 9.1. brn
lthatjuk, a Mozilla Firefox 3.5 pldul a "Search Bookmarks and History"
9.
fejezet
rltrlapok l
209
l(
9.1. bra
9.2. bra
Ironikus mdon a Firefox 3.5 azt nem tmogatja, hogy a sajt webes rlapja
inkat is helyrz szveggel lssuk el. C'est la vie. A helyrz szveg tmoga
tst a klnfle bngszkben a 9.1. tblzat mutatja.
9.1. tblzat A helyrzk tmogatsa
IE
Firefox
Satari
Chrome
3.7+
4.0+
4.0+
210
l rltrlapok
9.
fejezet
fejezet
rltrlapok l 211
Flrefox
IE
Safarl
4.0+
autofocus>
autofocus>
<script>
if
)
</script>
<input type="submit value="Go">
</form>
intohtml5.orglexampleslinput-autofocus-withfallback.html oldalra.
212
l rltrlapok
9.
fejezet
E-mail cmek
Tbb mint egy v tizeden keresztl a webes rlapok csupn nhny fajta me
zbl lltak. A legelterjedtebbeket a 9.3. tblzat sorolja fel.
9.3. tblzat Bevitelimez-tpusok a HTML4-ben
nsfrY .. HYa
II' b-!W,..
Meyzsek
Jellngyzet
<input type;"checkbox">
Ki- s bekapcsolhat
Vlasztgomb
<input type;"radio">
Jelszmez
<input type;"password">
Lenyl lista
<select><option>...
Fjlvlaszt
Elkld gomb
<input type;"submit">
Egyszer szvegmez
<ine;"text">
"
"ellptetjk HTML5-t (pldul a dokumentumtpus mdostsval-lsd
9.
fejezet
tettem. Hogy mirt? Mert nem igazn tudom,mit jelent az,hogy egy bng
sz nem tmogatja a type="email "-t. Minden bngsz tmogatja. Lehet,
hogy nem csinlnak vele semmi klnset (a type="email" klnleges
kezelsre hamarosan ltunk nhny pldt),de azok a bngszk,amelyek
nem ismerik fel a type="email" tpus mezket,egyszeren type= "text"
tpusknt kezelik ket,s sima szvegmezknt jelentik meg.
Nem tudom elgg hangslyozni,mennyire fontos ez. A Vilghln r
lapok millii tallhatk,amelyek egy e-mail cm berst krik,s mindegyik
az <input type="text"> tpust hasznlja. Ltunk egy szvegmezt,be
rjuk az e-mail cmnket a mezbe,s ennyi. Aztn jn a HTML5,s k
ln meghatrozza a type= "e mail "-t. Ettl kiakadnak a bngszk? Nem.
A Fldn minden egyes bngsz type="text"-knt kezeli az ismeretlen
214 l rltrlapok
9.
fejezet
Webcmek
A webcmek - amelyeket sokan URL, a pednsabbak pedig URI nven is
mernek- szintn klnleges cl szveges adatok. A webcmek alakjt inter
netes szabvnyok szablyozzk. Ha valaki azt kri, hogy rjunk be egy web
cmer egy rlapra, valami olyasmit vr, mint a http://www.google.com,
nem pedig olyasmit, mint a 125 Farwood Road". Perjelek s a pontok gyak
"
ran elfordulnak a webcmekben, a szkzk hasznlata azonban tilos. Ezen
kvl minden webcm vgn ll egy tartomny-uttag, pldul a ".com" vagy
az .org".
"
s akkor jjjn az ... (dobpergst krek) .. <input type="url">! Ez
.
9. fejezet
rltrlapok l 215
<form>
<input type="email">
9.3. bra
<form>
<input type="url">
9.4. bra
216
l rltrlapok
9. fejezet
Szmok lptetmezkben
Kvetkezzenek a szmok. Egy szmot krni sok szempombl nehezebb, mim
egy e-mail vagy webcmet. Elszr is, a szmok bonyolultabbak, mint azt
gondolnnk. Nzznk egy gyors pldt: vlasszunk egy szmot. -l? Nem j,
egy l s 10 kztti szmra gondoltam. 7 1/2? Nem, nem trtszmot, ugyan
mr. n? Na, ez mr tnyleg irracionlis.
Azt akarom mondani, hogy ltalban nem "csak egy szmot" krnk.
Valsznbb, hogy egy adott tartomnyba es szmot szeretnnk, s azon
bell is csak bizonyos tpus szmokat engednk meg - pldul az egsz
"2"
value="6">
=2) a
mi n
fejezet
rltrlapok l 217
218
l rltrlapok
9. fejezet
<form>
<input type="number">
9.5. bra
si
<form>
<input
type="number"
min="o
max=" l O"
step="2"
value="6">
9.6. bra
Lptetmez
9. fejezet
rltrlapok l
219
L.._
__
1_,
0
9.7. bra
ll
ll
Szmok csszkkon
A szmbevitel brzolsra nem az elz rszben ismertetett lptetmezk
9.8. bra
Csszka
l rlt rlapok
9. fejezet
<input type="range"
mino"
max="lO"
ste"2"
value:;::: "6">
Dtumvlasztk
A HTML4-ben nem volt dtumvlaszt vezrl. Ezt a hinyossgat kln
fle JavaScript-keretrendszerekkel- pldul a Dojo, a j Query UI, a YUI vagy
a Closure Library segtsgvel - orvosolhattuk, de ezek a megoldsok term
szetesen a dtumvlasztt knl reljes keretrendszer alkalmazst ignyel
tk.
A HTML5 vgre mdot ad r, hogy beptett dtumvlaszt vezrlket
hasznljunk, s ne kelljen magunknak parancskdokat rnunk. Valjban
nem is egy mdot, hanem hatot: hasznlhatunk dtumvlasztt, hnapv
lasztt, htvlasztt, idvlasztt, dtum- s idvlaszrt, illetve dtum-, id
s idznavlasztL
A tmogats azonban jelenleg- amint azt a 9.4. tblzat is szemllteti
meglehetsen gyr.
9.4. tblzat A dtumvlaszt tmogatsa
Betitelimeztous
Qoera
type"date"
9.0+
type"month"
9.0+
9. fejezet
Minden___ msbnasz
type= "week
9.0+
type= "time
9.0+
type= "datetime
9.0+
9.9.
9.0+
brn azt lthatjuk, hogy az Opera hogyan jelent meg egy <input
type="date">
9.10.
l l
Week
..
E3
...
.,
..
: J fGol
0
December
I.
!!
11 g
1!. 1l!
?I.
3
Today
9.9. bra
l!
1!!
10
None
Dtumvlaszt
12009-12-25 j UTC
l December L ][2009
..
Week
! !! !!
Z ! l!!!l!l
:!!.!l.!!
""- ll
.!!
- 3
-
Today
9.1 0. bra
222
;,.
10
Dtum- s idvlaszt
l rlt rlapok
9.
fejezet
j2009-12 :TJ(Go_]
G] De<:ember 0J2009J
Uon
Tue
Wed
Thu
Fn
Sat
St..
! ll g
!.
.!.!!
.!.!! !!!
10
i[
9.11. bra
!l
No-ne
Today
___
Hnapvlaszt
type=
9.12.
J2009-W52 J
j[ j-D- l JI2009J
lT
w-
21.
.!
3
"
!!
7
ay
9.12. bra
Fn Sat Sun
.!
:?. !Q.!.!gQ
.!.!!!l.!.!!!!!
None
10
Htvlaszt
16:201
9.13. bra
Idvlaszt
fejezet
rltrlapok
223
Keresmezk
Ez egy kicsit bonyolultabb lesz. Pontosabban, az elv elg egyszer, de a meg
valsrsok nmi magyarzatot ignyelnek. me ...
Keress. Nem csak a Google Search vagy a Yahoo! Search segtsgvel
(persze ezekkel is): gondoljunk egy tetszleges keresmezre egy tetszleges
oldalon, egy tetszleges webhelyen. Az Amazonnak is van keresmezje,
a Neweggnek is, s a legtbb blognak is. Hogyan fest a lerkdjuk? Ht gy:
<input type="text">- olyan, mint minden ms szvegmez a Weben,
l rltrlapok
9.
fejezet
<form>
<input type"search">
<input type"submit" '
</form>
9.14.bra
Keresmez
foo
<form>
<input type"searcb">
<input type"submit" '
</form>
9.1 5. bra
Keresmez fkusszal
fejezet
rltrlapok l
225
Sznvlasztk
A HTML5 az <input type= "color"> meztpust is meghatrozza, amely
egy szn kivlasztst teszi lehetv, s a vlasztott szn tizenhatos szmrend
szer (hexadecimlis) brzolst adja vissza. Mg egyetlen bngsz sem
tmogatja, ami szgyen, mert n mindig is imdtam a Mac OS sznvlaszt
jt. Taln egyszer.
s mg egy dolog...
Ebben a fejezetben a beviteli elemek j tpusait, illetve olyan j szolgltatso
kat mutattam be, mint az automatikus fkuszls rlapmezk, de mg nem
beszltem arrl, ami taln a legizgalmasabb rsze a HTML5-rlapoknak: az
automatikus bemenetellenrzsrl. Gondoljunk az e -mail cmek bevitelnek
szoksos problmjra: a webes rlapokra bert e-mail cmeket valsznleg
valamilyen gyfloldali JavaScript-kddal ellenrizzk, ezt pedig PHP,
Python vagy ms kiszolgloldali parancsnyelven rt ellenrzkd futtatsa
kveti a kiszolgl oldaln. Az e-mail cmekJavaScript-kddal trtn ellen
rzse kt nagy buktatt rejt:
l rltrlapok
9.
fejezet
type="email">
IEJtoobar
9.16. bra
1111 rc;o-1
9.17. bra
rltrlapok l
227
Tovbbi olvasmnyok
Szabvnyok s lersok:
<input>
tpusok (http://bit.ly/akweH4)
JavaScript-knyvtrak:
10.
fejezet
"
"
"Elosztott , "bvthetsg
s ms divatos szavak
Ugorjunk fejest!
A HTML5-ben 100-nl is tbb elem tallhat (http://simon.html5.orglhtml5-
akadlyoz meg minket abban, hogy egy <person> elemet tegynk egy we
boldalra, csak ppen nem szmt majd rvnyesnek, a mkdse nem lesz
egysges a klnbz bngszkben (lsd a "Hossz kitr arrl, hogy mi
km kezelik a bngszk az ismeretlen elemeket" cm rszt a 3. fejezetben),
s tkzhet a jvbeli HTML-szabvnyokkal, ha azokban mr esetleg szere
peini fog ez az elem.
Ha viszont a sajt elemek ltrehozsa nem megolds, mit tehet egy a jelen
tstkrz kdra odafigyel webfejleszt? A HTML korbbi vltozatainak
bvtsre szmos ksrletet tettek. A legnpszerbbnek a mikroformtumok
fejezet
10. fejezet
10.
fejezet
"
"
"Elosztott , "bvthetsg .
.
231
A mikroadatok adatmodellje
Sajt mikroadat-sztrat meghatrozni knny. Elszr is egy nvtrre van
szksgnk, ami csupn egy URL. A nvtr URL-je mutathat pldul egy
mkd weboldalra, br ez szigoran vve nem ktelez. Tegyk fel, hogy
egy olyan mikroadat-sztrat szeretnnk meghatrozni, amely egy szemlyt
r le. Ha a birtokunkban van a data-vocabulary.org tartomny, a mikroadat
sztrunk nvtereknt a http:l!data-vocabulary.org!Person cmet hasznlhat
juk. gy egyszeren ltrehozhatunk egy globlisan egyedi azonostt: csak ki
kell vlasztanunk egy URL-t egy olyan tartomnybl, amelyet mi irnytunk
Ebben a sztrban meg kell hatroznunk nhny nevestett tulajdonsgot.
Kezdjk hrom alaptulajdonsggal:
A fenti tulajdonsgok kzl kett URL, a harmadik pedig sima szveg. Teht
mindegyik egyszeren brzolhat lerkddal; ehhez mg nem kell sem
mikroadatokat, sem sztrakat hasznlnunk. Tegyk fel, hogy van egy pro
filoldalunk vagy egy "nvjegy" ( "about" ) oldalunk. Ezen a nevnk valszn
A plda kedvrt ttelezzk fel, hogy a teljes profilt egy <section> elembe
burkoltuk, hogy elvlasszuk az oldaltartalom tbbi rsztl. gy:
<section>
<hl>Mark Pilgrim</hl>
<p><img sr c= "ht tp: l/www. example.com/photo.jpg" alt=" [me smiling] "></p>
<p><ahref="http://diveintomark.org/">weblog</a></p>
</section>
10.
fejezet
e tt k
<meta>
contentiellemz
<audio>
src jellemz
<embed>
<iframe>
<img>
<source>
<video>
href jellemz
<a>
<are a>
<link>
<object>
datajellemz
<L ime>
datetimejellemz
Minden ms elem
Szve.9.es tartalom
"
"Mikroadatokat hozzadni egy oldalhoz csupn annyibl ll, hogy a mr
meglev HTML-elemeket kiegsztjk nhny jellemzveL Az els teendnk
minden esetben az, hogy egyitemtype jellemz hozzadsval bejelentjk,
hogy melyik mikroadat-sztrat hasznljuk. A msodik teendnk mindig
a sztr hatkrnek meghatrozsa egy itemscope jellemzveL Ebben a
pldban minden adat, aminek a jelentst le szeretnnk rni, egy <section>
elemben tallhat, ezrt az itemtype s itemscope jellemzket ebben
a <section> elemben adjuk meg:
<section itemscope itemtype="http: //data-vocabulary. org/Person">
A <section> elemen bell az els adat a nevnk, amelyet egy <hl> elem
burkol be. A <hl> elem nem ignyel semmilyen klnleges feldolgozst, vagyis
a 10.1. tblzat "Minden ms elem" szablya al tartozik, amelynl a mikroadat
tulajdonsg rtke egyszeren az elem szvegtartalma (a dolog ugyanilyen jl
mkdik, ha a nevnket egy <p>, <div> vagy <span> elembe burkoljuk):
<hl
itemprop="name">Mark
10. fejezet
Pilgrim</hl>
"Elosztott", "bvthetsg"...
l 233
A kvetkez a
src>
itemprop="photo"
example.com/ photo.jpg.".
<a>
mark.org/."
name
l "Elosztott", bvthetsg"...
"
10. fejezet
Az
url
href
<a>
tartalmaz, inkbb az
onclick
hv meg egy fggvnyt (ami itt nem szerepel), amely kinyeri az URL-t, s
a benne lev cmre ugrik. ", a francba, ne mr!" bnuszpontokrt tegynk
gy, mintha a fggvny a hivatkozott oldalt radsul egy apr, grdtsvok
nlkli elugr ablakban nyitn meg. Ugye milyen vicces volt az Internet
a mlt szzadban?
Ettl fggetlenl azrt mikroadat-rulajdonsgg alakthatjuk a kdunkat,
csak egy kicsit kreatvnak kell lennnk. Az
kizrhatjuk A hivatkozs clja nem a
<a>
href
r md, hogy fellbrljuk a szablyt, amely kimondja, hogy egy <a> elem
"
ben a mikroadat-tulajdonsg rtket a href jellemzben kell keresni". Vi
szont azt megtehetjk, hogy egy burkolelembe gyazzuk az egsz katyvaszt,
s ennek a segtsgvel adjuk meg az
url
mikroadat-tulajdonsgot:
<lspan>
<ITABLE>
Mivel a
<span>
<span>
http://diveintomark.org/
"
csak a szveget,
<a>
elem szveg
cm.
fejezet
.,Elosztott", .,bvthetsg"... l
235
Szemlyek felcmkzse
Az elz rszben szerepl bevezet pldk nem voltak teljesen lgbl kapot
tak: valban ltezik mikroadat-szrr a szemlyekhez kapcsold adatok meg
jellsre, s valban ilyen egyszer a hasznlata. Nzzk meg kzelebbrl!
Mikroadatokat a legknnyebben a "nvjegyoldalunkon" ("About") gyaz
harunk be a szemlyes webhelynkbe. Ugye van "About" oldalunk? Ha nincs,
kvessk azt, ahogy a
http:!ldiveintohtml5.orglexampleslperson.html
cmen
http://diveintohtml5.orglexampleslperson-plus-microdata.html
cmen
tekinthet meg.
Elszr vessnk egy pillantst a nyers lerkdra, brmilyen mikroadat
rulajdonsg hozzadsa eltt:
<section>
<img width= "204" height= "250"
src="http://diveintohtml 5.org/examples/2000_05_mark.jpg "
alt=" [Mark Pilgrim, circa 2000l ">
<hl>Contact Information</hl>
<dl>
<dt>Name</dt>
<dd>Mark Pilgrim</dd>
<dt>Position</dt>
<dd>Developer advocate for Google, Inc. <Idd>
<dt>Mailing address</dt>
<dd>
1 00Main Street<br>
Anytown, PA 19999<br>
USA
</dd>
</dl>
<hl>My Digital Footprints</hl>
<ul>
<li><a href= "http:
<li><a href= "http:
prof ile</
a></li>
<li><a href= "http: l /www.reddit. com/user/MarkPilgrim ">Reddit. com
profile</a></li>
<li><a href= "http: l /www. twitter. com/diveintomark ">Twitter</a></li>
</ul>
</section>
236
l "Elosztott", "bvthetsg"...
10.
fejezet
Az els teendnk minden esetben az, hogy bejelentjk, hogy milyen sztrat
hasznlunk, s megadjuk a hozzadni kvnt tulajdonsgok hatkrt. Ezt
gy tehetjk meg, hogy hozzadjuk az itemtype s itemsco pe jellemz
ket a tnyleges adatokat tartalmaz elemeket magba foglal legkls elem
hez. Ez a mi esetnkben egy <section> elem:
<section i temscope itemtype="http: l /data-vocabulary. org/Person">
Lers
name
Nv
nickname
Becenv
photo
Kphivatkozs
title
ro le
url
af fi lia tion
friend
Egy trsas kapcsolatot azonost az adott s egy msik szemly kztt (bart)
contact
Egy trsas kapcsolatot azonost az adott s egy msik szemly kztt (zletfl)
acquaintance
Egy trsas kapcsolatot azonost az adott s egy msik szemly kztt (ismers)
address
10. fejezet
"Elosztott", bvthetsg"...
"
237
<img>
<img>
">
<img>
<section>
itemprop="photo">-bl]
az
<img
src>
05
m ark .jp g
[kzvetve,
jellemzbl]
<section>
jellemzt az
<img>
src
jellemzje.
238 l "Elosztott", "bvthetsg"...
10. fejezet
A kdban tovbb haladva egy <hl> cmsort lthatunk, valamint egy <dl>
lista elejt. Sem a <hl>, sem a <dl> elemet nem szksges mikroadatokkal
kiegsztennk. Nem minden HTML-rszlemek kell mikroadat-tulajdonsg
nak lennie. A mikroadatok lnyegr maguk a tulajdonsgok jelentik, nem az
azokat krlvev Ierkclok vagy cmsorok. Az emltett <hl> elem nem tu
"
lajdonsg, csupn egy cmsor, s ugyangy a "Name <dt> elem is csak egy
szvegcmke:
<hl>Contactinformation</hl>
<dl>
<dt>Name</dt>
<dd>Mark Pilgrim</dd>
Hol van teht az igazi informci? A <dd> elemben, teht ide kell tennnk
az itemprop jellemzt. Melyik tulajdonsgrl van sz? A name tulajdon
sgrL Mi ennek a tulajdonsgnak az rtke? A <dd> elemben tallhat sz
veg. Kell kln jellnnk valamit? A 10.1. tblzat azt mondja, hogy nem:
a <dd> elemek nem ignyelnek klnleges feldolgozst, teht a tulajdonsg
rtke egyszeren az elemben tallhat szveg:
<dd
itemprop="name">Mark Pilgrim</dd>
"
msik mikroadat-tulajdonsg .
advocate
10. fejezet
"
"
"Elosztott , "bvthetsg ... l 239
Inc." szvegrszt. Erre a CSS sem kpes. Mit tehetnk ht? Elszr olyan
lelemekbe kell burkolnunk az egyes szvegrszeket, mint a <span>, majd
klnbz CSS-stlusokat kell alkalmaznunk az egyes <span> elemekre.
Ez a mdszer a mikroadatoknl is mkdik. A pldnkban ktfle infor
mcit kell kezelnnk: a title s az affiliation tulajdonsgokat. Ha
mindkettt egy-egy <span> lelembe burkoljuk, megadhatjuk, hogy az egyes
<span>
<dt>Position</dt>
<dd><span itemprop="title">Developer advocate</span> for
<span itemprop="affiliation">Google, Inc. <span>< l dd>
local ity,
Person
Person.address
Person.address.street-address
Person.address.locality
Person.address.region
Person.address.postal-code
Person.address.country-name
10. fejezet
adnunk:
<dt>Mailing address</dt>
<dd itemprop="address" itemscope
itemtype="http://data-vocabulary.org/Address">
s a
"
hatroz elem a megadott sztr "hatkrbe tartozik. Ez az els eset azon
<span>
<span> elemekben egyesvel bevezet
jk a mikroadat-tulajdonsgokat:
<dd i temprop="address" it emseope
itemtype="http://data-vocabulary.org/Address">
<span itemprop="street-adclress">lOO Main Street</span><br>
<span itemprop="locality" >Anytown</span>,
<span itemprop="region"> PA< l span>
<span itemprop="postal-code" >19999</span>
<span itemprop=" country-name">USA</ span>
</dd>
</dl>
Ez magyarul annyit tesz, hogy "Ennek a szemlynek van egy levelezsi cme.
"
A levelezsi cmben az utca s a hzszm "100 Main Street , a helysg
"
" Anytown , az llam "PA'', a postai irnytszm "19999'', az orszgnv pedig
"USA''. Egyszerbb mr nem is lehetne.
10.
fejezet
"Elosztott", "bvthetsg"... l
241
itemtype="http://data-vocabulary.org/Address">
<span itemprop="street -address">
100Main Street
Suite 415
</span>
</p>
l /diveintomark. org/"
itemprop="url">weblog</a></li>
<li><a href= "http:
242 l
Elosztott", "bvthetsg"...
"
10. fejezet
itemprop="url">Google profile</a></li>
<li><a href; "http:
l /www. reddit.com/user/MarkPilgrim"
a webbngszk s
a keresmotorok.
"
"
"Elosztott , "bvthetsg . . .
\ 243
(http:llwww.google.com/supportlwebmasterslbin/answers.py?hl=en&answer = 99170).
Amikor a Google webes kerespkja feldolgozza az oldalunkar, s olyan
mikroadar-rulajdonsgokar tall, amelyek megfelelnek a ht t p: l l data
nameMark Pilgrim
title Developer advocate
affiliation
Google, Inc.
address Item (
l )
l /diveintomark.org/
urlhttp: l /www. google.com/profiles/pilgrim
urlhttp: l /www.reddit.com/user/MarkPilgrim
urlhttp: l /www. twitter. com/diveintemark
urlhttp:
Item l
Type: http://data-vocabulary.org/address
street-address 100Main Street
locality
Anytown
regionPA
postal-code
19999
country-nameUSA
10.
fejezet
l O. l. bra
Az els sor- About Mark Pilgrim"- igazbl az oldal cme, amit a <title>
"
elem ad meg. Ez nem tl izgalmas - a Google minden oldal cmt megjele
nti. A msodik sor azonban mr tele van olyan informcikkal, amelyek
kzvetlenl az oldalhoz fztt mikroadatokbl szrmaznak. Az Anytown
"
PA" az oldalon a levelezsi cm rszeknt szerepelt, amelyet a ht tp: l ldata
vocabulary. orgiAddress sztr segtsgvel jelltnk meg, a
Developer
"
Google, Inc." pedig a http:lldata-vocabulary.orgl
"
Person sztr kt tulajdonsga (title s aff iliation) .
advocate" s a
"
"
"Elosztott , "bvthetsg . . .
l 245
Szervezetek felcmkzse
A mikroadatok nem korltozdnak egyetlen sztrra. Egy "nvjegyoldal"
hasznos, de valsznleg csak eggyel rendelkeznk belle. T bbet szeretnnk?
Tanuljuk meg, hogy cmkzhetnk fel cgeket s szervezeteket!
Ksztettem egy zleti mintaoldalt (http :lldiveintohtml5.orglexamp leslorga
nization.html); nzzk is meg az eredeti HTML-kdot, mikroadatok nlkl:
<article>
<hl>Google, Inc.</hl>
<p>
1600 Amphitheatre Parkway<br>
Mountain View, CA 94043<br>
USA
</p>
<p>650-253-0000</p>
<p><a href="http://www.google.com/">Google.com</a></p>
</article>
html.
A kd bjosan rvid. A szervezettel kapcsolatos sszes informcit az <article>
elem tartalmazza, ezrt kezdjk itt:
<article itemscope i temtype= "http:
l /data-vocabulary.org/Organization ">
(http://data-vocabulary.org/Organization)
scope
246
l "Elosztott", "bvthetsg"...
10.
fejezet
name
url
address
str eet-
A szervezet telefonszma
g eo
A legkls <ar ticle> elemen bell az els kdcmke egy <hl> elem. Ez a
<hl> elem egy cg nevt tartalmazza, ezrt kzvetlenl egy itemprop= " name"
itemprop="name">Google,
Inc. </hl>
<p
10.
fejezet
Parkway</span><br>
</p>
A 10.1. tblzat szerint sem a <p>, sem a <span> elem nem ignyel klnle
ges feldolgozst. A tel mikroadat-tulajdonsg rtke egyszeren a szvegtar
talom. Az Organization mikroadat-sztr nem tesz ksrletet arra, hogy r
szeikre bontsa a telefonszmokat; az egsz tel tulajdonsg csupn szabad
formtum szveg. Ha a krzetszmot zrjelbe szeretnnk tenni, vagy a
szmokar ktjelek helyett szkzkkel vlasztannk el, azt is megtehetjk.
Ha egy gyflprogram elemekre szeretn bontani a relefonszmot, ezt reljes
egszben magnak kell megoldania.
10. fejezet
jellemzvel:
<p><a itemprop="url" href= "http: l /www .google. com/ ">Google .com</ a></ p>
10.
fejezet
"
"
"Elosztott , "bvthetsg ...
l 249
<span>
elembe tehetjk:
itemtype="http://data-vocabulary.org/Geo">
<meta itemprop="latitude" content= "37. 414 9"/>
<meta itemprop="longitude" content= "-122. 07 8" l>
</span>
</article>
<span>
elemnek teht h
geo
tulaj
donsgt jelkpezi.
i tem type="http://data-vocabulary.org/Geo"
10. fejezet
itemscope
Ez a jellemz azt mondja, hogy az elem egy sajt (az itemtype jellemz
ben megadott) sztrral rendelkez mikroadat-elem befoglal eleme. Az eb
ben az elemben tallhat sszes tulajdonsg a Geo sztr (http://data
vocabulary.org/Geo)
(http:l/data-vocabulary .org/Organization).
Esemnyek felcmkzse
Mindig trtnik valami. Egyes dolgok pedig elre meghatrozott idpon
tokban trtnnek. Nem lenne klassz, ha pontosan megmondharnnk a kere
sknek, hogy egy adott dologra mikor kerl sor? Nos, van erre egy cscsos
zrjel.
Induljunk ki egy minta-temtervbl, amely az n eladsaimat sorolja fel
(http:!ldiveintohtml5.orglexamples/event.htmf):
10. fejezet
"
"Elosztott", "bvthetsg . .
.
251
<article>
<hl>Google Developer Day 2009</hl>
<img width="300" height="200"
src="http://diveintohtmlS.org/examples/gdd-2009-prague-pilgrim.jpg"
alt=" [Mark Pilgrim at podium] ">
<p>
Google Developer Days are a chance to learn about Google
developer products from the engineers who built them. This
one-day conference incluctes seminars and "office hours"
on web technologies like Google Maps, OpenSocial, Android,
AJAXAPis, Chrome, and GoogleWeb Toolkit.
</p>
<p>
<time datetime="2009-ll-06T08: 30+01: 00">2009 November 6, 8: 30</time>
–
<time datetime="2009-ll-06T20: 30+01: 00 ">20: 30</time>
</p>
<p>
Congress Center<br>
5th kvetna 65<br>
140 21 Praha 4<br>
Czech Republic
</p>
<p><a href="http://code.google.com/intl/cs/events/developerday/2009/
home. html">GDD/Prague home page</ a></p>
</article>
10.4. tblzatban!
252
l "Elosztott", "bvthetsg"...
10.
fejezet
surrunary
Az esemny cme
url
location
description
Az esemny lersa
startDate
end Date
duratien
eventType
geo
long i tude,
fl.hO tO
Az esemny cme egy <hl> elemben tallhat. A 10.1. tblzat szerint a <hl>
elemek nem ignyelnek semmilyen klnleges feldolgozst. A mikroadat
tulajdonsg rtke egyszeren a <hl> elem szvegtartalma. Teht csak any
nyit kell tennnk, hogy hozzadjuk az itemprop jellemzt, hogy bejelent
sk, hogy ez a <hl> elem tartalmazza az esemny cmt:
<hl irop="slll!lllarY">Google Developer Day 2009</hl>
Ez magyarul annyit tesz, hogy "Az esemny cme Google Developer Day
200 9."
src
height="200"
src="http://diveintohtmlS.org/examples/gdd-2009-prague-pilgrim.jpg"
alt=" [Mark Pilgrim at podium] ">
10. fejezet
"
"
"Elosztott , "bvthetsg ... l 253
Ez magyarul annyit tesz, hogy "Az ehhez az esemnyhez tartoz fnykp a http:/1
diveintohtm/5. orglexamples/gdd-2009-prague-pilgrimjpg cmen tallhat".
Ezt egy hosszabb lers (description) kveti az esemnyrl, ami csupn egy
bekezdsnyi tetszleges szveg:
<p itemprop="description">Google Developer Days are a chance to
learn about Google developer products from the engineers who built
them. This one-day conference incluctes seminars and "office
hours" on web technologies like Google Maps, OpenSocial,
Android, AJAX AP Is, Chrome, and Google Web Toolkit. </p>
itemprop="endDate"
time>
</p>
Ez magyarul annyit tesz, hogy "Ez az esemny 2009. november 6-n, reggel
8:30-kor kezddik, s 2009. november 6-n 20:30-ig tart (prgai id, teht
GMT+l szerint).".
254 J "Elosztott", "bvthetsg"...
10. fejezet
itemprop="location" itemscope
itemtype="http://data-vocabulary.org/Organization">
Ez urn cmkzzk fel a szervezet nevt, a nevet egy <span> ldembe bur
kolva, majd egy i temprop jellemzt adva a <span> elemhez:
<span
itemprop="name">Congress
Center</span><br>
itemprop="acldress" itemscope
itemtype="http://data-vocabulary.org/Add ress">
10. fejezet
"
"
"Elosztott , "bvthetsg ...
255
l "Elosztott", "bvthetsg"...
10.
fejezet
begyazott Geo s Address elemekkel. Csak azrt ernlitern meg futlag, hogy
emlkeztessek r, hogy egy oldalon tbb esemny is lehet, amelyek mindegyi
kt felcmkzhetjk mikroadatokkal.
(http:!/diveintohtm/5.orglexampleslevent-plus-microdata. html):
Item
Type: http://data-vocabulary.org/Event
summary=Google Developer Day 2009
eventType=conference
photo=http: l /diveintohtmlS.org/examples/gdd-2009-prague-pilgrim.jpg
description=Google Developer Days are a chance to learn about Google
developer products from the engineers who built them. This
one-day conference incluctes seminars and office hours on web
technologies li ke Goo...
startDate = 2009-11-06T08: 30+01: 00
endDate =2009-11-06T20:30+01:00
location
geo
Item(_l)
Item(_3)
url=http: l /code.google.com/intl/cs/events/developerday/2009/home.html
Item
Id:
Type: http://data-vocabulary.org/Organization
name= Congress Center
address
Item(_2)
Item
Id:
Type: http://data-vocabulary.org/Address
street-address= Sth kvetna 65
postal-code
140 21
locality= Praha 4
country-name=Czech Republic
It em
Id:
Type: http://data-vocabulary.org/Geo
latitude=50. 04 7893
longitude= 14.4 491
10. fejezet
,.Elosztott", ,.bvthetsg"...
l 257
2010
Fd, Nov
Wed, Mar
10
4,
Czech Republic
1 0.2. bra
10. fejezet
Kritikk felcmkzse
Az zlet- s termkismertetk jabb pldt szolgltatnak arra, hogy miknt
tehetjk jobb a Vilghlt (s a keresk tallari oldalait) a lerkdon keresz
tl. Az albbiakban egy rvid kritika lthat, amelyet a lakhelyem kzelben
tallhat kedvenc pizzzmrl rtam. (Mellesleg egy ltez tteremrl van
sz. Ha brmikor az szak-karolinai Apexben jrunk, rdemes betrni.) Nz
zk meg az eredeti kdot (http:lldiveintohtml5.orglexampleslreview.html):
<article>
<hl>Anna' s Pizzeria</hl>
<p>*****
(4
i''IA
megad URL:
<article
fejezet
"
"
"Elosztott , "bvthetsg ... l 259
itemreviewed
rating
a http:
dtreviewed
summary
description
A kritika szvegtrzse
itemtype="http://data-vocabulary.org/Address">
<span itemprop="street-address">lOO North Salem Street</span><br>
<span itemprop="locality">Apex</span>,
<span itemprop="region">NC</ span>
260
l "Elosztott", "bvthetsg"...
10.
fejezet
<span itemprop="postal-code">27502</span><br>
<span itemprop="country-name">USA</ span>
</p>
<span itemprop="geo" itemscope
itemtype="http://data-vocabulary.org/Geo">
<me ta itemprop="latitude" content '35. 730796' />
<meta itemprop="longitude" content"-78.851426" />
</span>
mrcius
tes " akaszt " lenne, amire felakaszthatjuk az itemprop jellemzt. A szerz
nevt egyszeren egy <span> ldembe burkoljuk:
<p>
<span itemprop="reviewer">Mark Pilgrim</ span>, utols frissts:
fejezet
*********
(<span itemprop="value">9</span> egy
<span itemprop="worst ">0</span>-tl
<span itemprop="best">10</span>-ig terjed skln)
</p>
Ez magyarul annyit tesz, hogy "Az rtkelt termk egy O-tl 10-ig terjed
l)
geo = Item(_2)
reviewer =Mark Pilgrim
dtreviewed =2010-03-31
Item
Id:
Type: http://data-vocabulary.org/Organization
street-address = 100 North Salem Street
locality =Apex
region = NC
postal-code
27502
country-name =USA
I tem
Id:
Type: http://data-vocabulary.org/Geo
latitude =35. 730796
longitude =-78.851426
10. fejezet
A 10.3. brn lthatjuk, hogy miknr festene a kritikm egy keres tallari
oldaln (a Google szeszlyeitl, a holdfzistl s egyebektl eltekintve).
Anna's Pizzeria: review
*****Review by Mark Pilgrim- Mar 31, 2010
Excerpt from the page will show up here.
Excerpt from the page will show up here.
diveintohtml5.org/examples/review-plus-microdata.html - Cached - Similar pages
l 0.3. bra
Tovbbi olvasmnyok
A mikroadatokkal kapcsolatos forrsok:
"
"About rich snippets and structured data (http://www.google.com/
supportlwebmasterslbin/answer.py?hl=en&answer=99170)
"
"People (http:llwww.google.com/supportlwebmasterslbin/answer.py?hl=
en&answer=l46646)
"
"Businesses & organizations (http:llwww.google.com/supportlwebmastersl
binlanswer.py?hl=en&answer=146861)
"
"Evenrs (http://www.google. comlsupportlwebmasterslbinlanswer.
py?hl=en&answer=164506)
"
"Reviews (http:llwww.google.com/supportlwebmasterslbinlanswer.
py?hl=en&answer=146645)
"
"Review ratings (http://www.google.com/supportlwebmasterslbin/answer.
py?hl=en&answer=172705)
Google Rich Snippets teszteleszkz (http://www.google.com/webmastersl
tools/richsnippets)
Google Rich Snippets tippek s trkkk (http:llknol.google.comlklgoogle
rich-snippets-tips-and-tricks)
Fggelk
A "mindent egyben tartalmaz s majdnem
(http://www.modernizr.com)!
Az elemek listja
<audio>
http:J/bit.ly/cZxl7k
return!!document.createElement('audio').canPlayType;
http://en.wikipedia.org/wiki/MP3
! (a. canPlayType
"));
&&
a. canPlayType('audio/mpeg;').replace(/no/,
http://en.wikipedia.org/wikiNorbis
var a= document.createElement('audio');
return ! ! (a. canPlayType && a. canPlayType(' audio/ogg; codecs= "vorbis
"') .
replace(/no/, ''));
http://en.wikipedia.org/wiki/WAV
! ! (a. canPlayType
&&
replace(/no/, ''));
http:/ /en.wikipedia.org/wiki/Advanced_Audio_Coding
var a= document.createElement('audio') ;
return ! ! (a. canPlayType && a. canPlayType('audio/mp4; codecs= "mp4a. 40.2
"') .
replace(/no/, ''));
Fggelk l
265
<canvas>
Lsd a 4. fejezetben
return! !document.createElement('canvas').getContext;
<command>
http://bit.ly/aQt2Fn
<datalist>
http://bit.ly/9WVzSp
<details>
http://bit.ly/c08mQy
<device>
http://bit.ly/aaBeUy
<form> megszorts-ellenrzs
http://bit.ly/cb9Wmj
<iframe sandbox>
http://blog.whatwg.org /whats-next-in-html-episode-2-sandbox
<iframe srcdoc>
http://blog .whatwg.org/whats-next-in-html-episode-2-sandbox
<input autofocus>
<input placeholder>
266 J Fggelk
http://bit.ly/9H keN n
i.setAttribute('type', 'color');
return i.type ! =='text';
<input type="email">
i. type !
return
== 'text';
<input type="number">
var i =document.createElement('input');
i.setAttribute('type', 'number');
return i. type ! =='text';
<input type="range">
var i= document.createElement('input');
i.setAttribute('type', 'range');
return i.type ! =='text';
<input type="search">
var i =document.createElement('input') ;
i.setAttribute('type', 'search');
return i.type !=='text';
<input type="tel">
http://bit.ly/bZmOQS
var i =document.createElement('input') ;
i.setAttribute('type', 'tel');
return i.type 1== 'text';
var i= document.createElement('input');
i.setAttribute('type', 'url');
return i. type
== 'text';
<input type="date">
i. type !
=='text';
<input type="time">
<input type="datetime">
var
=document.createElement('input');
Fggelk l
267
i.setAttribute('type', 'datetime');
return i. type !=='text';
<input type="datetime-local">
var i
document.createElement('input');
i.setAttribute('type', 'datetime-local);
return i.type
=='text';
<input type="month">
var i= document.createElement('input');
i.setAttribute('type', 'month');
return i.type
'text';
<input type="week">
var
document. createElement('input');
i.setAttribute('type' , 'week') ;
return i. type !
==
'text';
<meter>
http://bit.ly/cOpXOI
<output>
http://bit.ly/asJaqH
<progress>
http://bit.ly/bjDMy6
<time>
http://bit.ly/bl62jp
<video>
Lsd az
5. fejezetben
return! !document.createElement('video').canPlayType;
<video> feliratok
http://bit.ly/9mliRr
<video poster>
return 'pos ter' in document.createElement('v ideo');
268
l Fggelk
http://bit.ly/b6RhzT
http://www.webmproject.org/
replace (/no/,
''));
contentEditable
http://bit.ly/alivbS
http://bit.ly/cUOqXd
return! 1window.postMessage;
Elzmnyek
http:/ /bit.ly/9JGAGB
File API
http:J/dev.w3.org/2006/webapi/FileAPI/
Helyi trols
http://dev.w3.org/html5/webstorage/
Helymeghatrozs
Lsd a 6. fejezetben
return! 1navigator.geolocation;
"
"Hzd s ejtsd
http://bit.ly/aNORFQ
Lsd a 8. fejezetben
return! !window.applicationCache;
Fggelk l 269
Mikroadatok
http:/ /bit.ly/dBGnqr
return ! !document.getitems;
Munkamenet-trols
http://dev.w3.org/html5/webstorage/
try {
return 'sessionStorage' in window
&&
} catch(e) {
return false;
Server-Sent Events
http://dev.w3.org/htm 15/eventsource/
'undefined' ;
SVG
http:/ /www.w3.org!TR/SVG/
return ! 1 (document.createElementNS
&&
SVG text/html
http://hacks.mozilla.org/201 0/05/
firefox-4-the-html5-parser-inline-svg-speed-and-more/
'<svg></ svg>' ;
return ! ! (window.SVGSVGElement
&&
SVGSVGElement);
Visszavons
http:/ /bit.ly/bs6JFR
WebSimpleDB
return ! ! window.indexedDB;
Web Sockets
http://dev.w3.org/htm 15/websockets/
return ! 1 window.Web5ocket;
270
l Fggelk
http://dev.w3.org/html5/webdatabase/
http://bit.ly/9jheof
window. Wo rker;
Tovbbi olvasmnyok
Szabvnyok s lersok:
HTML5 (http://bit.ly/bYiOQp)
J avaScri pr-knyvtrak:
Index
A
<article>, 71, 80
B
-
<aside>, 72
AAC, 130
betmret, 103
addColorSrop, 107
beviteli elemek, 49
addEventListener, 186
bitrta, 129
bitsebessg, 129
Andrew, 21
<canvas>, 37, 93
Apache, !62
CACHE:, 198
appcache, 199
Cache-Control, 203
applicationCache, 47
cached, 201
application/xhtml+xml, 25, 27
arc(), 119
canPlayType(), 41, 42
audiokodekek, 127
ceruza-tagfggvny, 98
checking, 201
cikkek, 80
cmek, 242
auromatikus hrfolyam-felderts, 66
cmkk, 70
cmsorcsoport, 72
automatikus rlapfkusz, 52
cmsorok, 77
auroplay, 158
clear(), 186
AVI, 123
clearWatch(), 175
Index
273
comrols, 158
esemnykezel, 117
cookie, 181
excanvas.js, 113
coords, 170
Expires, 203
createLinearGradiem, 106
explorercanvas, 38
createRadialGradiem, 106
ExplorerCanvas, 113
csatorna, 128
CSS, 66
csszka, 220
F
<footer>, 72, 87
<form>, 209
fa, 60
$(document).ready(), 213
datetime, 84
dtum, 83, 254
drumvlasztk, 221
DHTML Behaviors, 182
Display Postscript, 21
doctype, 57
Dojo, 221
dokumemum nyelve, 67
dokumentumobjektum-modell, 35
dokumemumtpus, 57
dokumemumvzlat, 78
DOM, 35
DOM-esemnyek, 201
DOM Srorage, 184
downloading, 201, 202
drawlmage(), 110
FAAC, 130
FairPlay, 130
fejlc, 14
ffmpeg, 154
ffmpeg2theora, 143
fillrect, 95
filiStyle, 95
filiText(), 39, 103
Firefogg, 136, 140
Firefox, 23
Flash-stik, 182
Flash Video, 122
FlowPlayer, 163
fkusz, 213
font, 102
fordtott hivatkozs, 69
fgg alapvonal, 102
gears_init.js, 176
geo.js, 176
em-ngyzet, 102
geolocation, 48
enableHighAccuracy, 174
error, 202
rtkels, 261
getComext(), 37, 94
esemnyek, 251
esemnyfolyam, 201
getltem(), 185
274
Index
getitems(), 54
HTTP2, 17
httpd.conf, 162
gradiem, 106
HyTime, 22, 24
Greasemonkey, 159
gyermekelem, 60
gykrelem, 60
gyorstr, 196
gyorstrjegyzk, 196
<img>, 109
<input type="color">, 226
<input type=" date">, 222
H
<a href>, 64
<head>, 61
<header>, 72, 78
<hgroup>, 72, 79
.htaccess, 162
idblyeg, 170
idpont, 254
ikon, 68
lmage.onload, lll
HandBrake, 145
handle_srorage(), 187
hatkr, 231, 233
hrtrszlak, 46
helyi megosztort objektumok, 182
helyi trols, 44, 181
helymeghatrozs, 48, 167, 172
helyrz szveg, 51, 209
hibakeress, 203
img, 14
INCLUDE, 22
lndexed Database API, 192
IndexedDB, 192
informcis sv, 169
input type, 49
inpur.value, 218
Imermedia, 20
hiperhivatkozsok, 65
hivatkozsok, 64
ismeretlen elemek, 73
hreflang, 67
HTML+, 20
HTML 4.0, 25
HTML5, 80
HTML5 Srorage, 183
HTML5-tmogats, 35
HTML5-trol, 183, 185
HTML-munkacsopon, 26
J
jegyzkfjl, 195, 197
jelenrstkrz elemek, 71
HTTP, 16
Index l 275
K
kapcsolat nlkli webalkalmazs, , 46, 195
longitude, 170
LSO, 182
karakterkdols, 62,64
kategria-kulcsszavak, 70
Kpek, 109
kpernyolvas, 86
M
<mark>, 72
kpkocka, 124
keress,70
<meta charset>, 64
keresmezk,224
<meta http-equiv>,64
key(), 186
kitltsi stlus,95
maximumAge, 174
kodek,41
metaadatok, 61
kdols, 143
Midas, 17
koordintk, 170
mikroadatok,53, 230
kr, 119
mikroadatok adatmodellje,232
mikroformtumok, 229
krvonalstlus,95
kvr lblc, 88
kritikk,259
Modernizr.inputtypes, 51
morzsatvonal, 68
Mosaic, 16
MouseEvent, 117
moveTo(), 98
Mozilla, 23
MPEG-1 Audio Layer 3, 129
<linb, 65
lblc, 72,87
MPEG-4, 122
LAME, 129
lang, 61
lthatatlan adatok,250
latitude, 170
<nav>, 71
lekpezsi md,58
lpskz,218
lptetmez, 217,219
navigator.geolocation, 168
levlcsompont, 60
libvp8, 155
Netscape Navigator, 23
NE TWORK:, 198
lineTo(),98
nvtr, 232
276 l Index
no quirks mode, 58
rel = alrernare, 66
noupdare, 202
rel = "archives", 67
nyelv, 61, 66
rel
"aurhor", 67
rel= "exrernal", 67
rel = "icon", 68
rel= "license", 68
rel="nexr", 67
objekrumrrol, 192
rel = "nofollow", 68
rel= "noreferrer", 69
rel = "pingback", 69
oldalsv, 72
rel
OpenSearch, 70
rel="prev", 67
"prefetch", 69
rel = "search", 70
rel = "sidebar", 70
rel= "starr", 67
rel="srylesheer", 65
parh, 98
rel = "tag", 70
pingback, 69
rel="up", 68
removeltem(), 186
pontossg, 174
posirion, 170
PosirionError, 171
<section>, 71
<source>, 160
pubdare, 83
setltem(), 185
sizes, 68
skip link, 87
SLAC, 17
QuickTime, 122
spinbox, 219
quirks mode, 58
SQL, 191
QUOTA_EXCEEDED_ERR, 188
standards mode, 58
slider, 220
step, 218
srepDown, 218
srepUp, 218
stluslap, 66
rajzkrnyezer, 94
rajzvszon, 37, 93
SrorageEvent, 187
rajzvszon-koordinrk, 96
stroke(), 99
rajzvszonra rr szveg, 38
strokeStyle, 95, 99
RDFa, 229
supporcs_canvas(), 37, 39
rel, 65
supporcs_geolocation(), 48
Index l 277
suppons_inpur_aurofocus(), 53
supports_input_placeholder(), 52
rype="number",217
suppons_local_storage(), 45
supports_microdata_api(), 54
supports_offiine(), 47
supports_video(), 41
supports_web_workers(),46
ugrhivatkozs, 87
surround, 128
updateready,202
sti, 181
URI,215
szabvnykvet md, 58
URL,215,242
szakasz, 71
rlap,49
szakaszfejlcek, I 98
rlapellenrzs,227
szl, 46
rlapok,26,209
szmok,217
URL-minta, 200
szemlyek,236
userData, 182
szervezetek, 246
tvonal, 98
sznlloms, 107
szntmenetek, 106
sznvlasztk,226
sztr,230
szveg, 102
v
-vcodec, 155
szveg-alapvonal,102
szlcsompont,60
vide, 40
<rime>, 72,83,254
videoformrumok, 41, 42
videokodekek, 123
tanalomszimatols, 14
videorrolk, 122
tartalomrpus, 14
tartomny-uttag,215
visszhangrresrs, 69
Technorati-cmkk, 70
viszonyler elemek, 64
telefonszmok,248
VML, 113
testvr, 60
Vorbis, 130
textAlign, I 02
VP8, 126
Theora, 126
timeour, 174
watchPosition(), 175
timestamp, 170
webcmek, 215
rolltagfggvny,98
WebDB, 191
rrkkz md, 58
webes rlapok,26,49,209
278
Index
x
x264, 126
XHTML,27
XHTML 1.0,25
XHTML Extended Forrns,26
XHTML nvtr,60
xml:lang,61
xmlns jellemz,60
XMosaic, 16
y
YUI, 221
A szerzrl