日期:2014-03-23  浏览次数:20873 次

任务和任务屏蔽
内部任务
  前往<prev>

  用来将当前页面的URL压入URL历史堆栈,并打开此前的URL,若该URL不存在,则<prev>无效。语法类似<go>,<prev>和</prev>之间可加入一句或多句<setvar name="name" value="value"/>,若不加,则必须以<prev/>的方式出现。

  刷新<refresh>

  用来刷新当前的页面,从而使得页面内的变量刷新或置空,语法与prev相反。<refresh> <setvar name="name" value="value"/> </refresh>,或<refresh/>。

  无动作<noop>

  表示什么也不做,该标签不能用在<anchor>中,普通用在覆盖DECK级的<do>。

任务屏蔽(Task Shadowing)
  WML的Task有两个级别,Deck级和Card级。通常人们还习惯把设置在某些条件中的任务成为第三级,在这里先不讨论,后面有专门的描述。

  Deck Level:把通用的Task设置在template中,这个Deck中所有的Card都自动承继并使用这些task。

  Card Level:只在当前的Card中无效,并替换掉Deck Level的相反属性的Task。

示例:

<wml>
  <template>
    <do type="options" name="general" label="Back">
      <prev/>
    </do>
  </template>
<!-- a deck level task-->

<card id="Card1">
  <p>Hello , this is a test <br/>
    <a href="#card2">the second</a>
  <p>
</card>

<card id="Card2">
<!-- This Card override the deck level task by noop -->
<do name="general" type="options" label="none">
  <noop/>
</do>
<p>nothing happend here</p>
</card>
</wml>