Como ya hemos comentado, además de elementos para definir la presentación de los documentos, el HTML incluye herramientas para expresar hiperenlaces, es decir, relaciones entre dos anclajes, que se denominan cabeza y cola del hiperenlace. El anclaje de cola es el que "apunta" a la cabeza, es decir, el que empleamos para acceder a ella.
Hasta ahora hemos visto anclajes a partes del propio documento o en otro documento de la misma dirección, pero en general, los anclajes se identifican mediante una dirección mucho más completa. En el caso del HTML esta dirección es un URI (Uniform Resource Identifier) absoluto, seguido opcionalmente por una almohadilla (#) y una secuencia de caracteres, denominada identificador de fragmento.
En la dirección de un anclaje, el URI se refiere a un recurso; este recurso puede ser cualquier tipo de entidad (como páginas HTML) y ser obtenido usando distintos protocolos (HTTP para páginas HTML). El identificador de fragmento se referirá a alguna vista o porción del recurso (por ejemplo, una sección dentro de una página HTML).
Los siguientes marcados del HTML indican el anclaje de cola de un hiperenlace (o conjunto de ellos):
Todos ellos hacen referencia a anclados cabeza mediante un URI, ya sea absoluto o relativo, con o sin identificador de fragmento.
En el caso de tener un URI relativo, el URI absoluto se obtiene combinando el URI base absoluto del documento con el relativo. El URI base es el identificado en el elemento <BASE>, o sino existe el del documento actual.
Una vez calculada la dirección del recurso, el visor debe obtenerlo para presentárselo al usuario. Por ejemplo, si el URI base es http://www/alice/ y el documento contiene la marca <img src="../img/logo.gif">, el visor emplea el URI http://www/img/logo.gif para obtener la imagen.
Comentaremos ahora algunos usos y particularidades de los hiperenlaces:
El visor de HTML permite al usuario "navegar" por el contenido del documento y solicitar la activación de hiperenlaces representados con elementos de tipo <A> y, opcionalmente, los de tipo <LINK>.
Para activar un enlace, el cliente obtiene una representación del recurso identificado por la dirección del anclaje, si lo que obtenemos es otro documento HTML, la posibilidad de navegar comienza de nuevo con él.
Los hiperenlaces de elementos del tipo <IMG> e <INPUT> se suelen obtener a la vez que se procesa el documento, es decir, los enlaces a imágenes se procesan sin necesidad de que el usuario lo solicite, de modo que se pueden mostrar dentro de la representación del documento HTML, en el lugar en el que aparecen referenciados, es decir, donde esté el elemento <IMG> o <INPUT>.
Los hiperenlaces de tipo <LINK> también pueden ser procesados sin la intervención del usuario; si, por ejemplo, se refieren a hojas de estilo, pueden ser procesados antes o durante el proceso del documento.
Cuando en un elemento <IMG> aparece el atributo ISMAP, el elemento <IMG> debe estar dentro de un anclaje de tipo HREF. Esta estructura representa un conjunto de hiperenlaces.
Por ejemplo:
<a href="http://www/cgi-bin/imagemap"><img ismap src="menu.gif"></a> |
Si el usuario selecciona alguno de los enlaces marcando un pixel de la imagen, el visor calcula la dirección del recurso añadiendo al URI dado en el elemento <A> un interrogante ? y las coordenadas x e y del pixel.
En el ejemplo anterior, si el usuario selecciona la esquina superior izquierda, el URI seleccionado será http://www/cgi-bin/imagemap?0,0.
En un hipertexto cualquier palabra precedida del carácter # es un identificador de fragmento. En particular, una dirección de la forma #sec se refiere a un anclaje dentro del mismo documento.
El significado de los identificadores de fragmento depende del tipo de documento. Para documentos del tipo text/html, se refiere a un elemento <A> con un atributo NAME cuyo valor es igual al del identificador de fragmento (sin la almohadilla), como hemos visto en algún ejemplo anterior. Los nombres deben ser exactamente iguales, ya que se distingue entre mayúsculas y minúsculas y los nombres dentro de los documentos deben ser únicos (no podemos nombrar dos secciones con el mismo identificador). El visor indica dónde está el nombre desplazándose hasta el anclaje y/o resaltándolo.
El elemento <ISINDEX> representa un conjunto de hiperenlaces. El usuario puede elegir entre ellos proporcionando palabras clave al visor. El visor compone el URI del recurso añadiendo un interrogante ? y las palabras al URI base. Los caracteres especiales se sustituyen por secuencias de escape y si hay varias palabras se unen empleando el símbolo +. Por ejemplo, si un documento contiene:
<BASE HREF="http://www/indice"> <ISINDEX> |
y el usuario introduce las palabras niño y libro, entonces el visor accederá al recurso http://www/indice?ni%F1o+libro.
La forma de introducir los datos depende del tipo de visor, algunos presentan un cuadro especial y otros muestran en la página un mensaje y un recuadro para rellenar.
Los elementos <FORM> que emplean el atributo METHOD=GET también se refieren a conjuntos de atributos, como veremos más adelante.