WML - 事件



事件在普通语言中可以定义为发生的事情。在编程中,事件的含义相同,但有一个主要区别。当计算机系统中发生某些事情时,系统本身必须(1)检测到发生了某些事情,并(2)知道如何处理它。

WML 语言也支持事件,并且您可以在事件发生时指定要采取的操作。此操作可以是 WMLScript 形式,也可以是 WML 形式。

WML 支持以下四种事件类型

  • onenterbackward:当用户通过正常的向后导航方式点击卡片时,会发生此事件。也就是说,用户在后面的卡片上按下后退键,并返回到历史堆栈中的此卡片。

  • onenterforward:当用户通过正常的向前导航方式点击卡片时,会发生此事件。

  • onpick:这更像是一个属性,但它用作事件。当选择列表中的项目被选中或取消选中时,会发生此事件。

  • ontimer:此事件用于在给定时间段后触发事件。

这些事件名称区分大小写,并且必须为小写。

WML <onevent> 元素

<onevent>...</onevent> 标签用于创建事件处理程序。其用法采用以下形式

<onevent type="event_type">
   A task to be performed.
</onevent>

您可以在 <onevent>...</onevent> 标签中针对事件使用 go、prevrefresh 任务。

<onevent> 元素支持以下属性

属性描述
type
  • onenterbackward
  • onenterforward
  • onpick
  • ontimer
定义发生的事件类型。
class类数据为元素设置类名。
id元素ID元素的唯一 ID。

以下示例显示了 <onevent> 元素的用法。在此示例中,无论何时您尝试从第二张卡片返回到第一张卡片,都会发生onenterbackward,这会将您移动到第三张卡片。复制并粘贴此程序,然后尝试使用它。

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">

<wml>
<onevent type="onenterbackward">
  <go href="#card3"/>
</onevent>

<card id="card1" title="Card 1">
<p>
  <anchor>
     <go href="#card2"/>
     Go to card 2
  </anchor>
</p>
</card>
<card id="card2" title="Card 2">
<p>
   <anchor>
   <prev/>
      Going backwards
   </anchor>
</p>
</card>
<card id="card3" title="Card 3">
<p>
Hello World!
</p>
</card>
</wml>
广告