天天看點

wml中的任務及其元素wml中的任務任務元素

wml中的任务

WML允许我们在程序中指定一些任务,当某些特定的事件激活时,即可执行这些任务,从而完成需要的操作。

WML提供了4个任务元素,即go、prev、noop和refresh,它们主要与do元素和onevent元素中指定的事件相响应。

  1. <go> 表示切换到新卡片的动作。
  2. <noop> 规定不做任何事情。用于覆盖卡片组级别的元素。
  3. <prev> 表示后退到前面的卡片的动作。
  4. <refresh> 刷新一些指定的卡片变量。如果有变量显示在屏幕上,此任务也刷新屏幕。

实例:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

   <card>

       <p>

          <anchor>

                Go To Test

               <go href="test.wml" target="_blank" rel="external nofollow" />

          </anchor>

         <anchor>

                 Previous Page

                 <prev/>

          </anchor>

       <anchor>

            Refresh this page

             <go href="thispage.wml" target="_blank" rel="external nofollow" />

               <refresh>

                 <setvar name="x" value="30"/>

               </refresh>

       </anchor>

      

        <do name="back" type="prev" label="Back">

                 <noop/>

        </do>

</p>

</card>

</wml>

任务元素

  • go元素

    任务可以包含任意次的setvar元素或postfield元素。

    go任务的语法格式如下:

    <go href="href" target="_blank" rel="external nofollow" sendreferer="false|true" method="get|post" accept-charset="charset">

  1. href。该属性用于指定目标URL地址,属性是必选的。
  2. sendreferer。该属性用于指定是否传递调用href所指定的URL的卡片的URL,也是当前页的URL,即HTTP头中HTTP_REFERER。有两种选

    择:true或false。其中,默认值为false。

  3. method。与HTML中的表单FORM的method属性一样,该属性用于指定表单是以GET的方式还是post的方式递交。

    默认值为get,但如果没有指定method属性,而<go>和<go/>之间存在# postfield元素,

    则WAP手机浏览器会

    自动以post方式传递。

  4. accept-charset。当web服务器处理来自浏览器的输入信息时,该属性可指定服务器进行数据编码时必须采用的字符集

    列表。也就是说,该属性指定的字符集替代HTTP头里指定的字符集,以便作为服务器选用字符集的标准。

  • prev元素

    该元素通常是一个单独的标签<prve/>,不过有时也可由<prev>和</prev>一对标签进行定义。它用于指定将浏览器导航至历史推栈中的前一个URL地址。

    在浏览器操作的历史推栈中,prev任务执行的是"取出"操作,将前一个URL地址取出,并把当前URL地址推进历史推栈。如果历史推栈中没有前一个

    URL地址,即prev/元素不执行任何任务。

    prev任务的语法格式为:

    <prev/>

    或<prev> 内容(content) </prev>

    在后一语法格式中,prev元素包含的内容里面一般是setvar元素。

  • refresh元素

    它用于刷新当前的卡片,对卡片内指定的变量进行更新。其语法格式为:

    <refresh>

    内容(context)

    </refresh>

    其中包含的内容(content)中一般有setvar元素。

    通过时间限制(timer元素)对卡片进行刷新。

  • noop元素

    表示什么也不做,是一个空操作,在替代卡片组级的do元素是十分有用。该元素是一个单独的标签,即 <noop/> 标签。其语法格式如下:

    <noop/>

    noop元素没有属性,下面的简单程序中就包含了noop元素实现得空任务操作:

    当用户点击这个 "Back" 链接时,他或他被被带回前面的卡片。但是 <noop> 标签阻止了这个操作;当用户点击 "Back" 时,不会发生任何事情:

    <card id="card1">

    <do name="back" type="prev" label="Back">

    <noop/>

    </do>

    ...

    </card>

繼續閱讀