Interval.cz
XHTML û element object

V tomto dφle serißlu o XHTML si ukß₧eme element object, kter² p°edstavuje zßkladnφ mechanismus pro vklßdßnφ externφch objekt∙ (obrßzky, zvuk, video...) do strßnky.

Element object û vklßdßnφ externφch objekt∙

Povolen² obsah: (#PCDATA | param | %block; | form | %inline; | %misc;)*

Atributy:

%attrs;
Tato parametrickß entita obsahuje dalÜφ parametrickΘ entity:
%coreattrs; (atributy id, class, style a title),
%i18n; (atributy lang, xml:lang a dir) a
%events; (atributy onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown a onkeyup).
declare       (declare)       #IMPLIED
Pokud je tento boolean-atribut p°φtomen, je stßvajφcφ element pova₧ovßn pouze za deklaraΦnφ û k jeho aktivovßnφ musφ b²t vyvolßn n∞kter²m z nßsledujφcφch element∙ object.
codebase       %URI;       #IMPLIED
Tento atribut m∙₧e specifikovat URI, od kterΘho budou potom odvozovßna relativnφ URI v atributech archive, classid a data. Pokud nenφ nastaven, je s relativnφmi URI v t∞chto atributech naklßdßno b∞₧n²m zp∙sobem.
data       %URI;       #IMPLIED
Tento atribut udßvß URI adresu souboru s objektem, kter² mß b²t nahrßn. Jeho hodnotou mohou b²t i data samotnß (nap°. k≤d v n∞jakΘm jazyce), ale tento postup nenφ p°φliÜ Φast² a ani vßm ho nedoporuΦuji û interpret XHTML v takovΘm p°φpad∞ musφ p°enΘst vÜechna data, a¥ s nimi umφ Φi neumφ naklßdat, a¥ je smφ Φi nesmφ stahovatà
type       %ContentType;       #IMPLIED
Pomocφ tohoto atributu m∙₧ete nastavit MIME-typ dat specifikovan²ch atributem data. M∞li byste ho pou₧φvat v₧dy, kdy₧ je specifikovßn atribut data, aby interpret XHTML nestahoval data, s kter²mi neumφ naklßdat. Pokud server vrßtφ v HTTP hlaviΦce jin² MIME-typ ne₧ zde nastaven², mß tato HTTP hlaviΦka p°ednost.
classid       %URI;       #IMPLIED
Tento atribut m∙₧e b²t pou₧it k udßnφ URI adresy implementace objektu.
codetype       %ContentType;       #IMPLIED
Tento atribut udßvß MIME-typ dat, kterß jsou specifikovßna atributem classid. Jeho pou₧φvßnφ nenφ nutnΘ, ale je siln∞ doporuΦovßno v p°φpad∞, ₧e je classid pou₧it. Pokud nenφ zadßn, p°edpoklßdß se, ₧e je tato hodnota stejnß jako u atributu type.
archive       %UriList;       #IMPLIED
Hodnotou tohoto atributu je mezerami odd∞len² seznam URI, na kter²ch se nachßzφ archivy k danΘmu objektu û nap°. dopl≥ujφcφ data, kterß by si objekt p°i svΘm b∞hu vy₧ßdal. Tφmto zp∙sobem mohou b²t p°ednahrßny a potΘ ji₧ u₧ivatel nemusφ na jejich nahrßvßnφ Φekat.
standby       %Text;       #IMPLIED
Tento atribut m∙₧e specifikovat text, kter² mß interpret p°edlo₧it u₧ivateli p°i nahrßvßnφ objektu.
width       %Length;       #IMPLIED
Tento atribut specifikuje Üφ°ku objektu p°i vizußlnφm v²stupu. Tato Üφ°ka je bu∩ obyΦejnΘ Φφslo a udßvß hodnotu v pixelech nebo Φφslo nßsledovanΘ znakem % û v tom p°φpad∞ se pou₧ije procentußlnφ Φßst dostupnΘ Üφ°ky. Pokud je Üφ°ka menÜφ Φi v∞tÜφ ne₧ je skuteΦnß Üφ°ka objektu, musφ b²t objekt odpovφdajφcφm zp∙sobem zmenÜen/zv∞tÜen. Tento atribut byste ji₧ nem∞li p°φliÜ pou₧φvat, ale nahradit ho ve stylech nebo ponechat objektu jeho opravdovou Üφ°ku. U₧iteΦnost atributu spoΦφvß hlavn∞ v tom, ₧e prohlφ₧eΦ m∙₧e pro objekt rezervovat mφsto, i kdy₧ nenφ jeÜt∞ nahran², a pokraΦovat bez obav v zobrazovßnφ strßnky.
height       %Length;       #IMPLIED
Tento atribut je shodn² s atributem width, ale vztahuje se k v²Üce.
usemap       %URI;       #IMPLIED
Hodnotou tohoto atributu je odkaz na image-mapu, pokud mß objekt jako image-mapa slou₧it. Image-mapa se definuje bu∩ v externφm souboru (v tom p°φpad∞ je hodnotou URI adresa tohoto souboru) nebo p°φmo v dokumentu û potom je hodnotou odkaz na element map (o tom si ale jeÜt∞ povφme v p°φÜtφm dφlu).
name       NMTOKEN       #IMPLIED
Tento atribut udßvß jmΘno elementu pro p°φpad, ₧e by byl tento element odesφlßn formulß°em (k formulß°∙m se jeÜt∞ v naÜem serißlu dostaneme).
tabindex       %Number;       #IMPLIED
Pomocφ tohoto atributu m∙₧ete zm∞nit po°ßdek prochßzenφ dokumentu klßvesnicφ. Jeho popisu jsme se ji₧ v∞novali v Φßsti o odkazech.

Element object v XHTML 1.0 Strict DTD

Jak u₧ jsme si °ekli, element object je zßkladnφm mechanismem XHTML pro vklßdßnφ externφch objekt∙. Jednß se o element pßrov², p°iΦem₧ jeho obsahem je v podstat∞ parametrickß entita %Flow;, zde navφc obohacenß o specißlnφ element param, kter² umo₧≥uje nastavit vstupnφ parametry objektu (za chvilku si ho p°edstavφme). Uvnit° elementu object by se m∞l nachßzet alternativnφ obsah pro p°φpad, ₧e interpret XHTML nem∙₧e nebo neumφ interpretovat objekt, na kter² se object odkazuje (definovßnφ alternativnφho obsahu se budeme v∞novat v p°φÜtφm dφlu). Tento alternativnφ obsah by se ale nikdy nem∞l vyskytovat, pokud se element object nachßzφ v sekci head dokumentu (zde se objekt m∙₧e pouze inicializovat).

V∞tÜina vizußlnφch prohlφ₧eΦ∙ umφ sama o sob∞ zobrazovat zßkladnφ externφ objekty û nap°. obrßzky ve webov²ch formßtech PNG, JPEG a GIF nebo textovΘ soubory. K vlo₧enφ dalÜφch objekt∙ ji₧ prohlφ₧eΦ v∞tÜinou spouÜtφ externφ aplikaci. Pomocφ elementu object m∙₧ete sami definovat, jakß externφ aplikace se mß pou₧φt (pomocφ atributu classid), p°φpadn∞ m∙₧ete nastavit samotn² spustiteln² soubor, kter² se mß zobrazit.

Nynφ dva p°φklady na vyu₧itφ elementu object:

<object classid='http://www.miamachina.it/analogclock.py'>AnalogovΘ hodiny</object>

Tento p°φklad jsem si vyp∙jΦil ze specifikace HTML 4.01. Vidφte zde, jak je p°edßvßn pouze osamocen² spustiteln² applet (v jazyce Python). V u₧ivatelov∞ prohlφ₧eΦi m∙₧e b²t ale spouÜt∞nφ takov²ch soubor∙ z bezpeΦnostnφch d∙vod∙ zakßzßno. Pokud byste cht∞li poskytnout opravdu dobrou alternativu, mohli byste v tomto p°φpad∞ nechat generovat serverov²m skriptem do tohoto elementu aktußlnφ Φas. DalÜφ mo₧nostφ je ale nap°. poskytnout animaci analogov²ch hodin pomocφ jin²ch formßt∙:

<object classid='http://www.miamachina.it/analogclock.py'>
  <object data='hodiny.mpeg' type='video/mpeg'>
    <object data='hodiny.gif' type='image/gif'>
    AnalogovΘ hodiny
    </object>
  </object>
</object>

V tomto p°φklad∞ krßsn∞ vidφte, jak lze vyu₧φt toho, ₧e, pokud nelze nahrßt objekt, vyzkouÜφ se obsah elementu object. Zde se nejprve interpret XHTML pokusφ nahrßt soubor v Pythonu, potΘ video ve formßtu MPEG (to by zobrazil pomocφ programu, kter² mß definovßn ve svΘm nastavenφ), potΘ obrßzek GIF a a₧ jako poslednφ se zobrazφ alternativnφ text poslednφho objectu.

Element param û inicializace objektu

Povolen² obsah: EMPTY (₧ßdn² obsah)

Atributy:

id       ID       #IMPLIED
Obsahem tohoto atributu je jmΘno elementu.
name       CDATA       #IMPLIED
Tento atribut obsahuje jmΘno parametru, kter² objektu p°edßvßme. Ten by m∞l takov² parametr oΦekßvat a znßt, na n∞m takΘ zßle₧φ jestli jsou jeho jmΘno a hodnota citlivΘ na velikost pφsmen.
value       CDATA       #IMPLIED
Hodnota nastavovanΘho parametru.
valuetype       (data|ref|object)       'data'
Tento atribut udßvß typ hodnoty parametru, kter² p°edßvßme. Mo₧nosti jsou tyto t°i:
  • data û hodnota bude po svΘm vyhodnocenφ parserem p°edßna objektu jako °et∞zec
  • ref û hodnotou je URI adresa zdroje, kde se nachßzejφ parametry objektu
  • object û hodnotou je odkaz na v dokumentu d°φve deklarovan² objekt. Hodnotou atributu value musφ v tomto p°φpad∞ b²t hodnota atributu id tohoto objektu p°edchßzenß znakem #.
type       %ContentType;       #IMPLIED
Pokud je atribut valuetype nastaven na ref, potom tento atribut udßvß MIME-typ dat, kter² se nachßzφ na p°edßvanΘ URI adrese.

Element param v XHTML 1.0 Strict DTD

Element param slou₧φ k p°edßnφ parametr∙ objektu Φi aplikaci, kterou vklßdßme pomocφ elementu object. M∙₧e se jednat nap°. o informace o tom, kde mß zaΦφt p°ehrßvßnφ videoklipu, jak hlasit² mß b²t zvuk u audio souboru apod. JmΘna i hodnoty parametr∙ zßle₧φ na konkrΘtnφ aplikaci.

VÜechny elementy param se musφ nachßzet na zaΦßtku obsahu elementu object, jeÜt∞ p°ed jak²mkoli alternativnφm obsahem û v p°φpad∞ vφce object∙ vno°en²ch v sob∞ pat°φ param v₧dy k tomu, jeho₧ je dφt∞tem (v n∞m₧ je p°φmo vno°en). Nynφ p°φklad:

<object data='video.mpeg' type='video/mpeg'>
  <param name='start' value='5' />
  <param name='loop' value='true' />
Videozßznam z naÜφ dovolenΘ.
</object>

Parametry, kterΘ zde aplikaci p°edßvßme, jsou samoz°ejm∞ pouze fiktivnφ û u skuteΦn²ch aplikacφ budou pravd∞podobn∞ jinΘ.

Jmennß schΘmata objekt∙

Nynφ bych se cht∞l jeÜt∞ zastavit u atributu classid û m∙₧ete v n∞m pou₧φt URI zaΦφnajφcφ jak na klasickß schΘmata (nap°. http), tak i URI se specißlnφmi schΘmaty û nap°. java pro Java Applety nebo clsid pro ActiveX komponenty. Pokud se program navφc nachßzφ na n∞jakΘm URI, m∙₧ete pou₧φt toto schΘma ve spojenφ s atributem codebase. P°φklad:

<object classid='java:program.start' codetype='application/java-archive' codebase='http://applets.com/code/' standby='Probφhß nahrßvßnφ... Prosφm Φekejte.'>
... alternativnφ obsah ...
</object>

P°eddeklarace objektu

V XHTML m∙₧ete takΘ objekt p°eddeklarovat (tzn. ₧e se nahraje, p°ipravφ k pou₧itφ, ale jeÜt∞ nenφ spuÜt∞n) a pozd∞ji se na n∞j v dokumentu odkazovat û to mß v²hodu v tom, ₧e se objekt nahraje jen jednou a pou₧φt v dokumentu ho m∙₧ete kolikrßt chcete. P°eddeklarace objektu se provßdφ nastavenφm atributu declare a pojmenovßnφm tohoto objektu pomocφ atributu id:

<object declare='declare' id='muj_objekt' ... ></object>
<!-- Tato p°eddeklarace se m∙₧e vyskytovat i v sekci head. -->

PotΘ se na tento objekt m∙₧ete odkazovat bu∩ pomocφ klasick²ch odkaz∙ (zde pou₧ijete odkaz na jeho id):

<a href='#muj_objekt' ... > ... </a>

nebo z n∞j pomocφ elementu param zφskat vstupnφ parametry jinΘho objektu:

<object ... >
<param name='parametr' value='#muj_objekt' valuetype='object'>
... alternativnφ obsah ...
</object>

Jak vidφte, element object nabφzφ pom∞rn∞ rozsßhlΘ mo₧nosti vyu₧itφ. M∙₧ete ho pou₧φt jak k obecnΘmu vlo₧enφ n∞jakΘho objektu do strßnky (kdy udßte pouze soubor s daty a jejich typ, interpret pak pou₧ije implicitnφ aplikaci k manipulaci s nimi), tak k zavolßnφ aplikace ulo₧enΘ na serveru nebo specifickΘ pro n∞jak² prohlφ₧eΦ (nap°. ActiveX) û v tomto p°φpad∞ ji₧ definujete danou aplikaci a p°φpadn∞ i vstupnφ parametry. A¥ u₧ ho ale vyu₧ijete jakkoli, v₧dy byste se m∞li p°esv∞dΦit o dostateΦnΘ podpo°e danΘ aplikace, plug-inu, objektu apod. v prohlφ₧eΦφch vaÜich u₧ivatel∙, proto₧e tato oblast na tom nenφ z hlediska kompatibility zrovna nejlΘpe.



Martin Snφ₧ek (31.3. 2003)

Redakce Interval.cz |  Inzerce na Interval.cz |  Hledßme novΘ autory ISSN 1212-8651 
 ⌐ Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙.