Hay algunas etiquetas WML en las que podemos especificar una acci�n a realizar cuando se produzca un determinado evento, llamado evento intr�nseco. En WML tenemos definidos los siguientes eventos intr�nsecos:
| Evento | Afecta a la(s) etiqueta(s) | Descripci�n |
|---|---|---|
| ontimer | card, template | Este evento se da cuando finaliza un temporizador. Los temporizadores son especificados usando la etiqueta <timer> |
| onenterforward | card, template | Este evento se da cuando el usuario escoge ver una carta v�a la tarea go o cualquier otro m�todo que cause un efecto similar. Esto incluye entrar en una carta mediante un script o por un enlace.
Puede especificarse tanto en una carta concreta como en una plantilla. Si hacemos esto �ltimo, el evento ser� aplicado a todas las cartas salvo en aquella(s) en la(s) que se sobreescriba. |
| onenterbackward | card, template | Este evento se da cuando el usuario escoge ver una carta v�a la tarea prev o cualquier otro m�todo que cause un efecto similar. Por ejemplo, si usamos un navegador para PC con el que poder interpretar ficheros WML, y este navegador dispone de tecla BACK (estilo la de Netscape o Explorer, por ejemplo), el efecto ser�a el mismo, se ha producido un onenterbackward. Al igual que el anterior, se puede especificar tanto en una carta como en una plantilla, con las mismas consideraciones en cuanto a sobreescritura. |
| onpick | option | Este evento se da cuando el usuario selecciona o deselecciona un cierto elemento de una lista, por ejemplo. Sobre entrada de datos por el usuario comenzamos a hablar en el siguiente cap�tulo. |
Sabemos de qu� eventos intr�nsecos disponemos, pero a�n no sabemos qu� hacer con ellos; bien, se trata de asignarles una tarea para que esta sea ejecutada cuando se de ese evento. Esta asignaci�n puede hacer de dos formas. La primera de ellas es directa, es decir, dentro de la etiqueta que admite al evento, a�adirlo como un par�metro m�s y, tras un igual, poner entre comillas la URL a la que queremos acceder cuando suceda este evento. Por ejemplo:
<card onterforward="Un_URL"><p>...la carta...</p> </card>
La segunda forma consiste en usar la etiqueta pareada <onevent>. Se trata de una "versi�n" expandida de la anterior, que permite un mayor control sobre el comportamiento del navegador. Una etiqueta <onevent> debe llevar como par�metro type el tipo de evento que va a tratar (los vistos en la tabla), y dentro de las etiquetas se ha de especificar el tratamiento completo del evento. Aclaremos todos estos conceptos con un ejemplo que dar� punto final al cap�tulo:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="c1" title="c1">
<onevent type="onenterforward">
<go href="#c3"/>
</onevent>
<p>En esta carta se define un evento en
su version expandida, con la etiqueta
<onevent>
<do type="accept" name="delante">
<go href="#c2"/>
</do>
</p>
</card>
<card id="c2" title="c2" onenterbackward="#c2">
<p>Esta carta es posesiva y no nos dejara
avanzar hacia atras en algun caso.
</p>
</card>
<card id="c3" title="c3">
<p>Una tercera carta</p>
</card>
</wml>