13 Obxectos, imaxes e applets

Índice

  1. Introdución aos obxectos, as imaxes e os applets
  2. Inclusión dunha imaxe: o elemento IMG
  3. Inclusión xenérica: o elemento OBJECT
    1. Regras para mostrar obxectos
    2. Inicialización do obxectos: o elemento PARAM
    3. Esquemas globais de nomes de obxectos
    4. Declaracións e creacións de obxectos
  4. Inclusión dun applet: o elemento APPLET
  5. Notas sobre documentos embebidos
  6. Mapas de imaxes
    1. Mapas de imaxes do lado do cliente: os elementos MAP e AREA
    2. Mapas de imaxes do lado do servidor
  7. Representación visual das imaxes, os obxectos e os applets
    1. Ancho e alto
    2. Espazo en branco arredor das imaxes e os obxectos
    3. Bordes
    4. Aliñamento
  8. Como especificar un texto alternativo

13.1 Introdución aos obxectos, as imaxes e os applets

As características multimédia da HTML permiten-lles aos autores incluir imaxes, applets (programas que se descarregan e rodan automaticamente na máquina do usuário), clips de video e outros documentos HTML nas suas páxinas.

Por exemplo, para incluir unha imaxe PNG nun documento, os autores poden escreber:

<BODY>
<P>Velaqui un primeiro plano do Gran Canón:
<OBJECT data="canon.png" type="image/png">
Este é un <EM>primeiro plano</EM> do Gran Canón.
</OBJECT>
</BODY>

As versións anteriores da HTML permitian-lles aos autores incluir imaxes (por meio IMG ) e applets (por meio de APPLET ). Estes elementos teñen várias limitacións:

Para confrontar estes temas, HTML 4 introduce o elemento OBJECT , que agora oferece unha solución ampla à inclusión de obxectos xenéricos. O elemento OBJECT permite que os autores de HTML especifiquen todo o que un obxecto requira para ser mostrado por un axente de usuário: código fonte, valores iniciais e dados de tempo de execución. Nesta especificación, o termo "obxecto" usa-se para descreber as cousas que a xente quere incluir nos documentos HTML; outros termos usados habitualmente para estas cousas son: applets, módulos, plug-ins, manipuladores de médios, etc.

Deste xeito, o novo elemento OBJECT subsume algunhas das tarefas realizadas por outros elementos existentes. Considere-se a seguinte tabela de funcionalidades:

Tipo de inclusión Elemento específico Elemento xenérico
Imaxe IMG OBJECT
Applet APPLET (Desaprovado ) OBJECT
Outro documento HTML IFRAME OBJECT

A tabela indica que cada tipo de inclusión ten unha solución específica e outra xeral. O elemento xenérico OBJECT servirá como solución para incorporar tipos de médios futuros.

Para incluir imaxes, os autores poden usar o elemento OBJECT ou o elemento IMG .

Para incluir applets , os autores deberian usar o elemento OBJECT , dado que elemento APPLET está desaprovado .

Para incluir un documento HTML noutro, os autores poden tanto usar o novo elemento  IFRAME como o elemento OBJECT . Nos dous casos, o documento embedido permanece independente do documento principal. Os axentes de usuário poden mostrar o elemento embebido nunha xanela diferente dentro do documento principal. Consulte as notas sobre documentos embebidos para unha comparación entre OBJECT e IFRAME para inclusión de documentos.

As imaxes e outros obxectos incluídos poden ter hipervínculos asociados con eles, tanto através dos mecanismos de vinculación habituais, como tamén através de mapas de imaxes . Un mapa de imaxes especifica rexións xeométricas activas nun obxecto incluído e lle asigna un vínculo a cada rexión. Ao activá-los, estes vínculos poden facer que se recupere un documento, poden facer correr un programa no servidor, etc.

Nas seccións que seguen, tratamos os diversos mecanismos de que dispoñen os autores para a inclusión de multimédia e a creación de mapas de imaxes para esas inclusións.

13.2 Inclusión dunha imaxe: o elemento IMG

<!-- Para evitar problemas con axentes de usuário de só texto,
asi como para facer o conteúdo das imaxes comprensíbel e
navegábel para os usuários con axentes de usuários non visuais,
ten que fornecer unha descrición con ALT e evitar mapas de imaxes do lado do servidor -->
<!ELEMENT IMG - O EMPTY -- Imaxe incluída -->
<!ATTLIST IMG
%attrs; -- %coreattrs, %i18n, %events --
src %URI; #REQUIRED -- URI de imaxe a incluir --
alt %Text; #REQUIRED -- descrición breve --
longdesc %URI; #IMPLIED -- vínculo a descrición longa
(complementa alt) --
name CDATA #IMPLIED -- nome da imaxe para scripts --
height %Length; #IMPLIED -- indicar o alto --
width %Length; #IMPLIED -- indicar o ancho --
usemap %URI; #IMPLIED -- usar un mapa de imaxes do lado do cliente --
ismap (ismap) #IMPLIED -- usar un mapa de imaxes do lado do servidor --
>

Etiqueta inicial: requerida, Etiqueta final: proibida

Definicións dos atributos

src = uri [CT]
Este atributo especifica a localización do recurso de imaxe. Exemplos de formatos de imaxes coñecidos incluen GIF, JPEG e PNG.
longdesc = uri [CT]
Este atributo especifica un vínculo cunha descrición longa da imaxe. Esta descrición deberia complementar a descrición longa fornecida co atributo alt . Cando a imaxe ten un mapa de imaxes asociado, este atributo deberia fornecer información sobre os conteúdos do mapa de imaxes. Isto é particularmente importante para mapas de imaxes do lado do servidor. Dado que un elemento IMG pode estar no conteúdo dun elemento A ,  o mecanismo do axente de usuário na interface do usuário para aceder ao recurso "longdesc" do primeiro debe ser diferente ao mecanismo para aceder o recurso href do segundo.
name = cdata [CI]
Este atributo dá-lle nome ao elemento para que poda ser referido desde follas de estilo ou script. Nota. Este atributo incluíu-se por compatibilidade para trás. As aplicacións deberian usar o atributo id para identificar elementos.

Atributos que se definen noutro lugar

O elemento IMG embebe unha imaxe no documento actual na localización da definición do elemento. O elemento IMG non ten conteúdo; substitue-se na liña pola imaxe designada co atributo src , sendo a exceición as imaxes aliñadas à esquerda ou à direita que se fan "flotar" fora da liña.

Nun exemplo anterior, definimos un vínculo cunha foto de família. Aqui insertamos a foto directamente no documento actual:

<BODY>
<P>Acabo de voltar das vacacións! Velaqui unha foto da miña família no lago:
<IMG src="http://www.unhaempresa.com/Xente/Ian/vacacions/familia.png"
alt="Foto da miña família no lago.">
</BODY>

Esta inclusión pode-se lograr tamén co elemento OBJECT como segue:

<BODY>
<P>Acabo de voltar das vacacións! Velaqui unha foto da miña família no lago:
<OBJECT data="http://www.unhaempresa.com/Xente/Ian/vacacions/familia.png"
type="image/png">
Foto da miña família no lago.
</OBJECT>
</BODY>

O atributo alt especifica un texto alternativo que se apresenta cando non se pode mostrar a imaxe (ver máis abaixo para información sobre como especificar un texto alternativo ). Os axentes de usuário deben mostrar un texto alternativo cando non aceiten imaxes, non aceiten determinado tipo de imaxe ou cando estiveren configurados para non mostrar imaxes.

O exemplo seguinte mostra como se pode usar o atributo longdesc para vincular cunha descrición máis longa.

<BODY>
<P>
<IMG src="mapadositio.gif"
alt="Mapa do Sítio de HP Labs"
longdesc="mapadositio.html">
</BODY>

O atributo alt fornece unha descrición breve da imaxe. Isto deberia ser suficiente para permitir-lles aos usuários decidir se queren seguir o vínculo dado polo atributo longdesc , neste caso "mapadositio.html".

Consulte a sección sobre apresentación visual de obxectos, imaxes e applets para máis información sobre tamaño, aliñamento e bordes.

13.3 Inclusión xenérica: o elemento OBJECT

<!ELEMENT OBJECT - - (PARAM | %flow;)*
-- obxecto embebido xenérico -->
<!ATTLIST OBJECT
%attrs; -- %coreattrs, %i18n, %events --
declare (declare) #IMPLIED -- declarar mais non crear --
classid %URI; #IMPLIED -- identifica unha implementación --
codebase %URI; #IMPLIED -- URI base para for classid, data, archive--
data %URI; #IMPLIED -- referéncia aos dados do obxecto --
type %ContentType; #IMPLIED -- tipo de conteúdo dos dados --
codetype %ContentType; #IMPLIED -- tipo de conteúdo do código --
archive CDATA #IMPLIED -- lista de URI separados por espazos --
standby %Text; #IMPLIED -- mensaxe para mostrar ao carregar --
height %Length; #IMPLIED -- indicar o alto --
width %Length; #IMPLIED -- indicar o ancho --
usemap %URI; #IMPLIED -- usar un mapa de imaxes do lado do cliente client-side image map --
name CDATA #IMPLIED -- remeter como parte dun formulário --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
>

Etiqueta inicial: requerida, Etiqueta final: requerida

Definicións dos atributos

classid = uri [CT]
Pode-se usar este atributo para indicar a localización da implementación dun obxecto por meio dun URI. Pode-se usar conxuntamente con, ou como alternativa ao atributo data , dependendo do tipo de obxecto de que se trate.
codebase = uri [CT]
Este atributo especifica a rota base usada para resolver URI relativos especificados cos atributos classid , data e archive . De estar ausente, o seu valor por omisión é o URI base do documento actual.
codetype = content-type [CI]
Este atributo especifica o tipo de conteúdo dos dados esperados ao traer o obxecto especificado por classid . Este atributo é optativo pero recomendado cando se especifica classid , dado que lle permite ao axente de usuário evitar carregar información para tipos de conteúdo que non aceite. De estar ausente, o seu valor por omisión é o do atributo type.
data = uri [CT]
Este atributo pode-se usar para especificar a localización dos dados do obxecto, por exemplo, dados de imaxe para obxectos que definan imaxes, ou máis xeralmente, unha forma serializada dun obxecto que pode ser usada para recreá-lo. Se se dá como un URI relativo, deberia-se interpretar relativo ao atributo codebase.
type = content-type [CI]
Este atributo especifica o tipo de conteúdo dos dados especificados con data . Este atributo é optativo mais recomendado cando se especifique data , dado que lle permite ao axente de usuário evitar carregar información para tipos de conteúdo non aceitados. Se o valor deste atributo difire do Tipo de Conteúdo HTTP retornado polo servidor cando se recupera o obxecto, o Tipo de Conteúdo HTTP ten precedéncia.
archive = uri-list [CT]
Este atributo pode-se usar para especificar unha lista separada por espazos de URI de arquivos que conteñan recursos relevantes para os obxectos, que poden incluir os recursos especificados polos atributos classid e data Pré-carregar os arquivos ocasionará normalmente tempos de cárrega máis reducidos para os obxectos. Os arquivos especificados como URI relativos deberian ser interpretados como relativos ao atributo codebase.
declare [CI]
Cando estiver presente, este atributo booleando fai da definición OBJECT unha declaración só. O obxecto debe ser creado cunha definición OBJECT posterior referida a esta declaración.
standby = text [CS]
Este atributo especifica unha mensaxe que un axente de usuário pode mostrar encuanto carrega a implementación do obxecto e os dados.

Atributos que se definen noutro lugar

A maioria dos axentes de usuário teñen mecanismos incorporados para mostrar tipos de dados comuns, como texto, imaxes GIF, cores, tipos de letras e unha variedade de elementos gráficos. Para mostraren tipos de dados que non aceiten en princípio, os axentes de usuário normalmente fan correr aplicativos externos. O elemento OBJECT permite-lles aos autores controlar se os dados deberian ser mostrados externamente ou con algun programa, especificado polo autor, que mostre os dados dentro do axente de usuário.

No caso máis xeral, un autor pode necesitar especificar tres tipos de información:

O elemento OBJECT permite que os autores especifiquen os tres tipos de dados, mais os autores non teñen que especificá-los os tres a un tempo. Por exemplo, alguns obxectos poden non requerir dados (p.ex., unh applet completo que realiza unha animación pequena). Outros poden non requerir información de implementación adicional, isto é, o axente de usuário mesmo pode saber xa como mostrar ese tipo de dados (p.ex., imaxes GIF).

Os autores especifican a implementación dun obxecto e a localización dos dados que se han de mostrar mediante o elemento OBJECT . Para especificar valores de tempo de execución, porén, os autores usan o elemento PARAM , que se trata na sección sobre inicialización de obxectos.

O elemento OBJECT pode aparecer tamén no conteúdo do elemento HEAD . Dado que os axentes de usuário normalmente non mostran os elementos do cabezallo ( HEAD ), os autores deberian-se asegurar de que nengun elemento OBJECT de HEAD especifique conteúdo que poida ser mostrado. Consulte a sección sobre  exemplos de como incluir o elemento OBJECT no elemento HEAD .

Consulte a sección sobre contróis de formulários para información sobre os elementos OBJECT nos formulários.

Este documento non especifica o comportamento dos elementos OBJECT que usan o atributo tanto o atributo classid para identificar unha implementación como o atributo data para especificar dados para esa implementación. Para asegurar-se a portabilidade, os autores deberian usar o elemento PARAM para indicar-lles às implementacións onde recoller dados adicionais.

13.3.1 Regras para mostrar obxectos

Un axente de usuário debe mostrar un elemento OBJECT dacordo coas seguintes regras de precedéncia:

  1. O axente de usuário debe primeiro tentar mostrar o obxecto. Non deberia mostrar os conteúdos do elemento, senón que debe examiná-los por se o elemento contén alguns fillos directos que sexan elementos PARAM   (ver inicialización de obxectos ) ou elementos MAP (ver mapas de imaxes do lado do cliente ).
  2. Se o axente de usuário non é capaz de mostrar o obxecto por calquer razón (estar configurado para non facé-lo, auséncia de recursos, arquitectura errónea, etc.), debe tentar mostrar os seus conteúdos.

Os autores non deberian incluir conteúdo nos elementos  OBJECT que aparezan no elemento HEAD .

No exemplo seguinte, inserimos un applet dun relóxio analóxico nun documento mediante o elemento OBJECT . O applet, escrito na linguaxe Python, non require dados adicionais ou valores de tempo de execución. O atributo classid especifica a localización do applet:

    
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
</OBJECT>

Observe-se que o relóxio se mostrará axiña que o axente de usuário interprete esta declaración OBJECT . É posíbel adiar a representación dun obxecto declarando primeiro o obxecto (descrito máis abaixo).

Os autores deberian completar esta declaración incluindo un texto alternativo como conteúdo de OBJECT por se o axente de usuário non pode representar o relóxio.

    
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
Reloxio animado.
</OBJECT>

Unha consecuéncia significativa do deseño do elemento OBJECT é que oferece un mecanismo para especificar  representacións de obxectos alternativas; cada declaración OBJECT alternativa pode especificar tipos de conteúdo alternativos. Se un axente de usuário non pode mostrar o OBJECT máis externo, tenta mostrar o conteúdo, que poden ser outro elemento OBJECT , etc.

No exemplo seguinte, embebemos várias declaracións OBJECT para ilustrar como funcionan as representacións alternativas. Un axente de usuário tentará mostrar o primeiro elemento OBJECT se pode, na seguinte orde: (1) un applet Terra escrito na linguaxe Python, (2) unha animación MPEG da Terra, (3) unha imaxe GIF da terra, (4) texto alternativo.

<P>                 <!-- Primeiro, tenta o applet Python -->
<OBJECT title="A Terra vista desde o espazo"
classid="http://www.observer.mars/ATerra.py">
<!-- Se non, tenta o video MPEG -->
<OBJECT data="ATerra.mpeg" type="application/mpeg">
<!-- Se non, tenta a imaxe GIF-->
<OBJECT data="ATerra.gif" type="image/gif">
<!-- Se non, mostra o texto -->
A <STRONG>Terra</STRONG> vista desde o espazo.
</OBJECT>
</OBJECT>
</OBJECT>

A declaración exterior especifica un applet que re non require dados ou valores iniciais. A segunda declaración especifica unha animación MPEG e, dado que non define a localización dunha implementación que trate MPEG, confia no axente de usuário para tratar a animación. Tamén indicamos o atributo type para que un axente de usuário que saiba que non pode mostrar MPEG non se moleste en traer "ATerra.mpeg" da rede. A terceira declaración especifica a localización dun ficheiro GIF e fornece texto alternativo no caso de que fallen todos os demáis mecanismos.

Dados na liña frente a externos. Os dados que haxa que mostrar poden-se fornecer de duas maneiras: na liña e dunha fonte externa. Mentres que o primeiro método normalmente producirá unha representación máis rápida, non é conveniente ao mostrar cantidades grandes de dados.

Velaqui un exeemplo que ilustra como se lle poden pasar dados na liña a un OBJECT :

<P>
<OBJECT id="reloxio1"
classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
data="data:application/x-oleobject;base64, ...base64 data...">
Un relóxio.
</OBJECT>

Consulte a sección sobre representación visual de obxectos, imaxes e applets para información sobre tamaño, aliñamento e bordes de obxectos.

13.3.2 Inicialización de obxectos: o elemento PARAM

<!ELEMENT PARAM - O EMPTY              -- valor de propriedade con nome -->
<!ATTLIST PARAM
id ID #IMPLIED -- id único para todo o documento --
name CDATA #REQUIRED -- nome da propriedade --
value CDATA #IMPLIED -- valores da propriedade --
valuetype (DATA|REF|OBJECT) DATA -- Como interpretar os valores --
type %ContentType; #IMPLIED -- tipo de conteúdo para o valor
cando valuetype=ref --
>

Etiqueta inicial: requerida , Etiqueta final: proibida

Definicións dos atributos

name = cdata
Este atributo define o nome dun parámetro de tempo de execución, que se asume é coñecido do obxecto insertado. Que a propriedade varie con maiúsculas e minúsculas depende da implementación específica do obxecto. 
value = cdata
Este atributo especifica o valor dun parámetro de tempo de execución especificado con name . Os valores das propriedades non teñen sentido en HTML; o seu sentido determina-o o obxecto en questión.
valuetype = data|ref|object [CI]
Este atributo especifica o tipo do atributo value. Valores posíbeis:
  • data: Este é o valor por omisión do atributo. Significa que o valor especificado por value será avaliado e pasado à implementación do obxecto como unha secuéncia.
  • ref: O valor especificado por value é un URI que designa un recurso no que se armacenan valores de tempo de execución. Isto permite aceitar ferramentas para identificar URI dados como parámetros. O URI debe ser pasado ao obxecto como está, isto é, sen resolver.
  • object: O valor especificado por  value é un identificador que se refire a unha declaración de un OBJECT no mesmo documento. O identificador debe ser o valor do atributo id indicado para o elemento OBJECT declarado.
type = content-type [CI]
Este atributo especifica o tipo de conteúdo do recurso designado polo atributo value no caso no que  valuetype sexa "ref". Deste xeito, este atributo especifica-lle ao axente de usuário o tipo de valores que atopará no URI designado por value.

Atributos que se definen noutro lugar

Os elementos PARAM especifican un conxunto de valores que poden ser requeridos por un obxecto durante o seu tempo de execución. Pode aparecer calquer número de elementos PARAM no conteúdo dun elemento OBJECT ou APPLET , en calquer orde, mais deben ir colocados no comezo do conteúdo do elemento OBJECT or APPLET que os engloba.

Asume-se que a sintaxe dos nomes e valores é comprendida pola implementación do obxecto. Este documento non especifica como deberian os axentes de usuário recuperar os pares nome/valor nen como deberian interpretar nomes de parámetros que aparezan duas veces.

Tornamos ao exemplo do relóxio para ilustar o uso de PARAM : supoña que o applet pode tratar dous parámetros de tempo de execución que definen a sua altura e ancho iniciais. Podemos designar as dimensións iniciais como 40x40 píxeis con dous elementos PARAM.

    
<P><OBJECT classid="http://www.miamachina.it/reloxioanaloxico.py">
<PARAM name="alto" value="40" valuetype="data">
<PARAM name="ancho" value="40" valuetype="data">
Este axente de usuário non pode mostrar aplicacións Python.
</OBJECT>

No exemplo seguinte, os dados de tempo de execución para o parámetro "Val_iniciais" do obxecto especifican-se como un recurso externo (un ficheiro GIF). O valor do atributo valuetype fai-se asi "ref" e o value é un URI que designa o recurso.

<P><OBJECT classid="http://www.cousasderegalo.com/aplicacionderegalo"
standby="A carregar Elvis...">
<PARAM name="Val_iniciais"
value="./imaxes/elvis.gif">
valuetype="ref">
</OBJECT>

Observe-se que tamén indicamos o atributo standby para que o axente de usuário poida mostrar unha mensaxe mentres o mecanismo de representación se carrega.

Cando se mostra un elemento OBJECT , os axentes de usuário deben procurar o conteúdo só para os elementos PARAM que son fillos directos e "pasar-llos" ao OBJECT .

Asi, no exemplo seguinte, se se mostra "obx1", "param1" aplica-se a "obx1" (e non "obj2"). Se "obx1" non se mostra e "obx2" si, ignora-se "param1"e "param2" aplica-se a "obx2". Se non se mostrar nengun OBJECT , non se aplica nengun PARAM ..

<P>
<OBJECT id="obx1">
<PARAM name="param1">
<OBJECT id="obx2">
<PARAM name="param2">
</OBJECT>
</OBJECT>

13.3.3 Esquemas globais de nomes para os obxectos

A localización da implementación dun obxecto dá-se como un URI. Como se dixo na Introdución aos URI , o primeiro segmento dun URI absoluto especifica o esquema de nomes usado para transferir os dados designados polo URI. Para os documentos HTML, este esquema é habitualmente "http". Alguns applets poden empregar outros esquemas de nomes. Por exemplo, ao especificar un applet Java, os autores poden usar URI que comecen con "java" e para applets ActiveX, os autores poden usar "clsid".

No seguinte exemplo, inserimos un applet Java nun documento HTML.

<P><OBJECT classid="java:program.start">
</OBJECT>

Ao incluir o atributo codetype , un axente de usuário pode decidir se recuperar unha aplicación Java baseado na sua capacidade de facé-lo.

<OBJECT codetype="application/java-archive"
classid="java:program.start">
</OBJECT>

Alguns esquemas de representación requiren información adicional para identificar a sua implementación e hai-lles que indicar onde atopar esa información. Os autores poden dar información do camiño à implementación do obxecto mediante o atributo codebase.

<OBJECT codetype="application/java-archive"
classid="java:program.start">
codebase="http://foooo.bar.com/java/aminhaimplementacion/"
</OBJECT>

O exemplo seguinte exemplifica (co atributo classid ) un obxecto ActiveX mediante un URI que comeza co esquema de nomes "clsid". O atributo data localiza os dados que hai que mostrar (outro relóxio).

<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502"
data="http://www.acme.com/ole/reloxio.stm">
Non se pode usar esta aplicación.
</OBJECT>

13.3.4 Declaracións e creacións de obxectos

Os exemplos precedentes só ilustran definicións de obxectos isolados. Cando un documento há de conter máis de un exemplo do mesmo obxecto é posíbel separar a declaración do obxecto das suas creacións. Facé-lo asi ten várias avantaxes:

Para declarar un obxecto de maneira que non se execute ao ser lido polo axente de usuário, inclua o atributo booleano declare no elemento OBJECT . Ao mesmo tempo, os autores deben identificar a declaración asignando o atributo id do elemento OBJECT a un valor único. As creacións posteriores do obxecto referirán-se a este identificador.

Un OBJECT declarado debe aparecer nun documento antes da primeira aparición dese OBJECT .

Un obxecto definido co atributo declare crea-se cada vez que un elemento que se refire a ese obxecto requira que se mostre (p.ex. activa-se un vínculo que se refire a el, activa-se un obxecto que se refire a el, etc.).

No seguinte exemplo, declaramos un OBJECT e facemos que se cree referindo-nos a el desde un vínculo. Asi, o obxecto pode-se activar facendo clic sobre un texto resaltado, por exemplo.

<P><OBJECT declare
id="terra.declaration"
data="ATerra.mpeg"
type="application/mpeg">
A <STRONG>Terra</STRONG> vista desde o espazo.
</OBJECT>
...máis abaixo no documento... <P>Interesante <A href="#terra.declaration"> animación da Terra!</A>

O exemplo seguinte ilustra como especificar valores de tempo de execución que son outros obxectos. Neste exemplo, enviamos texto (de feito, un poema) a un mecanismo hipotético para ver poemas. O obxecto recoñece un parámetro de tempo de execución chamado "fonte" (para, por exemplo, mostrar o texto do poema nun tipo de letra determinado). O valor deste parámetro é el mesmo un obxecto que insire (mais que non mostra) o obxecto fonte. A relación entre o obxecto fonte e o visualizador de poemas consegue-se (1) asignando-lle o "tribuno" id à declaración do obxecto fonte e (2) referindo-o desde o elemento PARAM do obxecto visualizador de poemas (con valuetype e value).

<P><OBJECT declare
id="tribuno"
type="application/x-webfont"
data="tribuno.gif">
</OBJECT>
...ver o poema en KublaKhan.txt aqui... <P><OBJECT classid="http://foo.bar.com/visualizador_poemas" data="KublaKhan.txt"> <PARAM name="fonte" valuetype="object" value="#tribuno"> <P>Estás-te a perder un visualizador de poemas estupendo... </OBJECT>

Os axentes de usuário que non aceiten o atributo declare deben mostrar os conteúdos da declaración OBJECT.

13.4 Inclusión dun applet : o elemento APPLET

APPLET está desaprovado (con todos os seus atributos) en favor de OBJECT .

Ver a DTD transicional para a definición formal.

Definicións dos atributos

codebase = uri [CT]
Este atributo especifica o URI base do applet. Se non se especifica este atributo, entón por omisión é o mesmo que o URI base do documento actual. Os valores deste atributo só se poden referir a subdirectórios do directório que contén o documento actual. Nota. Mentres que a restrición sobre os subdirectórios se afasta da prática comun e da especificación HTML 3.2, o Grupo de Traballo en HTML escolleu deixar esta restrición nesta versión da especificación por razóns de seguranza.
code = cdata [CS]
Este atributo especifica ben o nome do ficheiro de clase que contén a subclase do applet compilado do applet, ben a rota para chegar à clase, incluindo o ficheiro da clase mesma. Interpreta-se con relación ao codebase do applet. Un dos dous, code ou object , debe estar presente.
name = cdata [CS]
Este atributo especifica un nome para a o applet concreto, que fai posíbel que os applets dunha mesma páxina se achen (e comuniquen) entre si.
archive = uri-list [CT]
Este atributo especifica unha lista separada por vírgulas de URI de arquivos que conteñen clases e outros recursos que serán "pré-carregados". As clases carregan-se usando un AppletClassLoader co codebase dado. Os URI relativos dos arquivos interpretan-se a respeito do codebase do applet. Pré-carregar recursos pode mellorar de maneira notória a actuación dos applets.
object = cdata [CS]
Este atributo dá-lle nome a un recurso que contén unha representación serializada do estado dun applet. Interpreta-se relativo ao codebase do applet. Os dados serializados conteñen o nome da clase do applet mais non a sua implementación. O nome da clase usa-se para recuperar a implementación dun ficheiro de clase ou un arquivo.

Cando se "deserializa" o applet, invoca-se o método start() mais non o método init().Os atributos válidos cando se serializou o obxecto inicial non se restauran. Todos os atributos pasados a ese APPLET estarán disponíbeis para o applet. Os autores deberian usar esta característica con moito coidado. Un applet deberia ser detido antes de que se serialice.

Un dos dous, code ou object , debe estar presente. Se se dan os dous, code e object , é un erro se fornecen nomes de clases diferentes.

width = length [CI]
Este atributo especifica o ancho inicial da área de repreentación do applet (excluindo calquer xanela ou diálogo que cree o applet).
height = length [CI]
Este atributo especifica o alto inicial da área de representación do applet (excluindo calquer xanela ou diálogo que cree o applet).

Atributos que se definen noutro lugar

Este elemento, aceitado por todos os navegadores que dispoñen de Java, permite-lles aos deseñadores embeber un applet Java nun documento HTML. Foi desaprovado en favor do elemento OBJECT .

O conteúdo do elemento APPLET actua como información alternativa para axentes de usuário que non aceiten este elemento ou que actualmente estexan configurados para non aceitar applets. Os axentes de usuário deben ignorar o conteúdo de non ser asi.

EXEMPLO DESAPROVADO:
No seguinte exemplo, o elemento APPLET inclui un applet Java no documento. Dado que non se fornece codebase , asume-se que o applet está no mesmo directório que o documento actual.

<APPLET code="Burbullas.class" width="500" height="500">
Applet Java que deseña burbullas animadas.
</APPLET>

Este exemplo pode ser ré-escrito con OBJECT como segue:

<P><OBJECT codetype="application/java"
classid="java:Burbullas.class"
width="500" height="500">
Applet Java que deseña burbullas animadas.
</OBJECT>

Poden-se-lle pasar os valores iniciais ao applet mediante o elemento PARAM .

EXEMPLO DESAPROVADO:
O applet Java seguinte:

<APPLET code="AudioItem" width="15" height="15">
<PARAM name="snd" value="Ola.au|Benvida.au">
Applet Java que toca un son de benvida.
</APPLET>

pode-se ré-escreber como segue con OBJECT :

<OBJECT codetype="application/java"
classid="AudioItem"
width="15" height="15">
<PARAM name="snd" value="Ola.au|Benvida.au">
Applet Java que toca un son de benvida.
</OBJECT>

13.5 Notas sobre os documentos embebidos

Às veces, en vez de vincular a un documento, un autor pode querer embebé-lo directamente nun documento HTML primário. Os autores poden usar tanto o elemento IFRAME ou  o elemento OBJECT para isto, mais os elementos  difiren entre si en vários aspeitos. Non só teñen diferentes modelos de conteúdos, o elemento IFRAME pode ser unha moldura de destino (ver a sección sobre especificación de información sobre a moldura de destino para máis detalles) e pode ser "seleccionado" por un axente de usuário como foco para imprimir , ver a fonte HTML, etc. Os axentes de usuário poden mostrar elementos das molduras seleccionadas de modo que se distingan das molduras non seleccionadas (p.ex., deseñando un borde arredor da moldura seleccionada).

Un documento embebido é completamente independente do documento no que vai incluído. Por exemplo, os URI relativos dentro do documento embebido  resolven-se dacordo co URI base do documento embebido, non do documento principal. Un documento embebido só se mostra dentro doutro documento (p.ex., unha sub-xanela);  doutro modo fica independente.

Por exemplo, a liña seguinte embebe os conteúdos de embebe_me.html na localización na que aparece a definición OBJECT .

...texto anterior...
<OBJECT data="embebe_me.html"> 
Atención: embebe_me.html non se pudo incluir.
</OBJECT>
...texto posterior...

Lembre que os conteúdos de OBJECT só se deben mostrar se o non se pode carregar o ficheiro especificado polo atributo data .

Non se define o comportamento dos axentes de usuário nos casos nos que un ficheiro se inclui a si mesmo.

13.6 Mapas de imaxes

Os mapas de imaxes permiten que os autores especifiquen rexións dunha imaxe ou obxecto e asignen unha acción específica para cada rexión (p.ex., recuperar un documento, correr un programa, etc.). Cando o usuário activa a  rexión, executa-se a acción.

Un mapa de imaxes crea-se asociando un obxecto a unha especificación de áreas xeométricas do obxecto sensíbeis.

Hai dous tipos de mapas de imaxes: