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>

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

<onevent> 元素支持以下属性:

属性描述
type
  • onenterbackward
  • onenterforward
  • onpick
  • ontimer
定义发生的事件类型。
classclass data设置元素的类名。
idelement ID元素的唯一 ID。

以下是显示<onevent>元素用法的示例。 在此示例中,每当您尝试从第2号卡返回到第1号卡时,就会发生onenterbackward,这会将您移至第3号卡。 复制并粘贴该程序并尝试使用它。

<?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>