WML-Tutorial
[ Inhaltsverzeichnis ]WML
 Ereignisbehandlung
Ereignisbehandlung
Ereignisbehandlung ( Definition )
onevent - Tag
onenterforward - Event
onenterbackward - Event
ontimer - Event
Timer
onpick - Event


Ereignisbehandlung

In WML ist eine gewisse Ereignisbehandlung ( EventHandling ) vorgesehen, die es ermöglicht, vordefinierte Tasks ausführen zu lassen, wenn ein bestimmtes Ereignis eintritt. Es wird zwischen vier verschiedenen Ereignissen unterschieden : 'onenterforward' , 'onenterbackward', 'ontimer' und 'onpick'.

Die Ereignisse onenterforward , onenterbackward und ontimer können innerhalb einer Card und/oder auf dem Deck definiert werden.

Das Ereignis onpick steht nur als Attribut des option-Tags bei einer Auswahlliste zur Verfügung.


Ereignisbehandlung ( Definition )

Die Ereignisse onenterforward , onenterbackward und ontimer können als Attribut einer Card spezifiziert werden, wobei dann nur die Angabe einer URL zulässig ist, die aufgerufen werden soll.

Beispiel :


<?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="test" onenterbackward="deck50.wml">
    <!-- Inhalt der Card -->
  </card>
</wml>  


Sie können allerdings auch über das onevent-Tag in eine Card und/oder Deck eingebunden werden, und einen vordefinierten Task ausführen.

onevent - Tag

Das onevent-Tag <onevent> und </onevent> bindet einen vordefinierten Task an ein bestimmtes Ereignis, welches über das Attribut type des onevent-Tags angegeben wird.

Beispiel :


<?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="test">
    <onevent type="onenterbackward">
      <go href="deck50.wml"/>
    </onevent>    
  </card>
</wml>  

onenterforward - Event

Der onenterforward-Event tritt ein, wenn eine Card oder ein Deck über einen go-Task, also ein Link, oder direkt durch die Eingabe der URL aufgerufen wird.

Beispiel :


<?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="oeftest">
    <onevent type="onenterforward">
      <refresh>
        <setvar name="var1" value="">
        <setvar name="var2" value="">
      </refresh>	  
    </onevent>    
  </card>
</wml>  

Erklärung :

Würde dieses Deck oder speziell die Card über einen go-Task oder per direkte Eingabe der URL dieses Decks/Card aufgerufen, dann werden die Variablen 'var1' und 'var2' initialisiert, was z.B. bei Formularen bewirkt, daß evtl. bestehende Einträge gelöscht werden.


onenterbackward - Event

Der onenterbackward-Event tritt ein, wenn eine Card oder ein Deck über die History angespochen wird. Dies kann z.B. durch den prev-Task erfolgen.

Beispiel :


<?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="oebtest">
    <onevent type="onenterbackward">
      <go href="deck50.wml"/>
    </onevent>    
    <!-- Inhalt -->    
  </card>
</wml>  

Erklärung :

Würde dieses Deck oder speziell die Card über einen prev-Task aufgerufen, dann wird nicht der Inhalt der Card angezeigt, sondern es wird die URL 'deck50.wml' aufgerufen.


ontimer - Event

Der ontimer-Event tritt ein, wenn ein vordefinierter Timer ( Stopuhr ) abgelaufen ist. Mit Hilfe dieses Events kann z.B. eine Weiterleitung zu einer anderen Card oder einem anderen Deck nach Ablauf des Timers realisiert werden.

Timer ( Defintion )

Ein Timer kann durch das timer-Tag <timer/> definiert werden. Die Attribute des timer-Tags sind name, dem der Name des Timers zugewiesen werden kann, und value, dem die Zehntel-Sekunden zugewiesen werden, wie lange der Timer laufen soll, bis das Ereignis ontimer den Task auslösen soll.

Beispiel :


<?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="stopuhr" ontimer="ende.wml">
    <timer value="150"/>
    <p>
      Nach 15 Sekunden ist Ende !
    </p>
  </card>
</wml>  

Erklärung :

Sobald die Card aufgerufen ist, wird der Timer initialisiert und wartet 15 Sekunden bis er den durch ontimer angegebenen Task ausführt. Im Beispiel würde nach 15 Sekunden ein neues Deck 'ende.wml' aufgerufen werden.


onpick - Event

Der onpick-Event steht als Attribut des option-Tags zur Verfügung und tritt dann ein, wenn diese Option vom Benutzer ausgewählt wird und hat zur Folge, daß die angegebene URL aufgerufen wird.

Beispiel :


<?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="wahl">
    <p>
      <b>Wohin ?</b>
      <select name="wohin">
        <option onpick="hilfe.wml">Hilfe</option>
        <option onpick="#info">Infos</option>
      </select>
    </p>
  </card>

  <card id="info">
    <p>
      Informationen gibt es hier !
    </p>
  </card>
</wml>

Erklärung :

Im Beispiel wurde eine Auswahlliste definiert, die dem Benutzer zwei Optionen zur Verfügung stellt. Wird die erste Option 'Hilfe' ausgewählt, so wird das Deck 'hilfe.wml' aufgerufen. Sollte die zweite Option 'Infos' ausgewählt werden, dann wird die Card mit der id 'info' angezeigt.