第三部分:WML主要语法 -- 时间元素
3.3 时间及其元素
WML提供了几个元素,专门用于处理用户浏览器的导航和事件。利用这些元素用户可以给某任务制定关联事件。那么当事件触发时,
浏览器就会执行相应的任务,比如URL导航就是通过事件实现的。而且,事件可以和一个需要完成的任务捆绑在一起。事件捆绑时一
般是通过几种元素及其标签声明来实现的,如go、do和onevent等元素。下面我们就讲解WML的事件元素及事件。
3.3.1 do元素
do元素提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。通过<do>和</do>标签将用户交互和某一个任务联
系在一起。用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。当用户激活这些交互功能时,用户浏览器
就会执行与do元素相关的任务。其语法格式如下:
<do type="type" label="label" name="name" optional="boolean">
任务(task)
</do>
其中tast是与do元素关联的动作,也是条件激活时浏览器即将执行的内容。在do元素中,用户必须绑定且只能绑定go、prev、noop和
refresh四种元素所实现任务中的一个任务(task)。go元素用于定位制定的URL地址,prev元素用于定位并打开前一操作或任务,
doop为空操作,refresh用于刷新当前卡片组或任务,有关他们的详细用法我们后面会陆续介绍。
do元素可以用于卡片一级,也可用于卡片组一级。当用于卡片一级时,do元素必须包含在card元素中;而用于卡片组一级时,do元素
必须包含在template元素中,由此定义的do元素将同时应用于当前卡片组的所有卡片。此时如果某个卡片不想应用模板中的do元素及
其任务,则需采用我们前面介绍的方法,使用同名事件处理来替代模板中的do元素的事件处理。而且,不论事件关联的任务是否相同
,当do元素定义的事件名称相同时,卡片的do元素将忽视卡片组一级do元素的影响,及卡片一组的do元素将被优先执行。
另外,含有空操作任务的do元素,不论它是否被激活,它都不会传送或显示到用户的浏览器中,这在一定程度上可以加快浏览器的工
作效率,因为服务器端体它抛弃了一些空任务的判断。 do元素各个属性的功能及用法讲解如下:
1)type。用于指定do元素的类型(type),也即需要关联、绑定的用户交互事件,是必选属性。用户浏览器接到这些事件后,就会
激活它们并执行相应的操作与处理。如果在一个卡片中定义了多个do元素并拥有同样type,那么用户必须为每个do指定不同的事件名
才行,否则就会发生判断混乱的错误。
do元素典型的类型(type)及执行条件介绍如下:
1、accept。当用户选择或按下相应功能键时(accept)、选项、命名或按钮时,浏览器接收或激活当前所作选择。 2、prev。激活
prev键时,浏览器将导航到历史记录中的前一个卡片。
3、help。激活HELP功能键或相应按钮、命名时,浏览器显示与当前内容相关的帮助信息。
4、reset。激活reset功能键或相应按钮、命名时,清除或重置当前卡片组或浏览器的状态。
5、options。激活options功能键或相应按钮、命名时,浏览器显示与当前内容有关的选项或附加操作。
6、delete。激活delete功能键或相应按钮、命名时,删除当前项目或选择。
7、unknown。如果给出的类型不能为do元素所识别,则一律按照unknown型处理,相当于类型为空,即type=""。
8、vnd.*。vnd.*及其它不同大小写组合[Vv][Nn][Dd].*。这种类型定义的都是vnd.cotype,用于激活供应商或用户浏览器自定义的
某个特定功能,其中co为公司(company)名的缩写。
9、X-*与X-*。扩展类型,目前WML中还没有使用。
2)label。该属性指定的文本字符串可以表示用户的交互事件。例如,当把某一个任务绑定在accept键上之后,并设置了label属性
,比如label="gone",那么浏览器就会将label的值“gome”显示在屏幕上;如果不指定,浏览器则会显示默认的“ok”字符串。为
了保证能在较小的手机上显示出来,label的属性值最多不超过6个字符。不过这可能因WAP手机品牌、型号不同而稍有不同,有的手
机最多不能超过5个字符。而且,如果手机浏览器不支持动态标签显示,那么它就会忽视label属性。
3)该属性用于指定do元索所绑定事件的名称。如果多个do元素制定了相同的name,那么他们绑定的事件统属一个。如果卡片一般与
卡片组一级中do元素制定了相同的事件名,那么卡片一级的时间将被优先执行,卡片组一级的事件将被忽视。
WML规定,在同一卡片或在同一模板中,不得指定具有相同事件名(name)的两个或两个以上的do元素。
另外,如果name属性值为空,则相当于没有指定name属性,这时do元素执行的事件或操作由type的属性值决定。
4)optional。指定浏览器是否忽视do元素及其包含的任务。有两个可选值:true和false。如果值为true,则浏览器将忽视当前do元
素,即不执行它所绑定的任务。反之,若值为false,则执行do元素。
3.3.2 ontimer事件
ontimer用于指定一个事件。当<timer/> 标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。ontimer的时间可以是一
个URL地址,一个卡片组,一个WML网页,一幅图像或其他符合URL定位的规则的文件。<timer/>标签指定的时间为正整数,单位大小
为1/10秒。
ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下:
<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href"
ontimer="href">
内容(content)
</card>
或:
<template onenterforward="href" onenterbackward="href" ontimer="href">
内容(content)
</template>
ontimer事件只有一个属性,即ontimer。它用于指定一个超链(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照
超链(href)的URL打开相应的卡片。
3.3.3 onenterforward事件
onenterforward事件仅当用户使用go任务或类似于go任务的任务来定位和浏览卡片时才可发生。设置onenterforward事件后,当用户
进入当前卡片组时,浏览器就会定位onenterforward属性或<go/>标签中指定超链(href)的URL地址,并打开URL指定的卡片。
onenterforward事件需要包含在card元素、template元素或onevent元素的标签中进行定义,其语法格式为:
<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href"
ontimer="href">
内容(content)
</card>
或:
<template onenterforward="href" onterbackward="href" ontimer="href">
内容(content)
</template>
或:
<onevent type="onenterforward">
<go href="href"/>其他任务(task)
</onevent>
前两种格式中,onenterforward事件作为card元素或template元素标签中的一个属性进行定义的,该属性即为onenterforward,它制
定了一个超链(href)的URL地址,当用户进入当前卡片时,浏览器就据此打开URL指定的卡片。这种格式制定的任务相当与go任务。
3.3.4 onenterbackward事件
当用户使用prev任务或类似的任务来导航至某一卡片时,onenterbackward事件才可发生。换句话说,当用户从历史堆栈中选取URL地
址,并通过浏览器打开这一地址对应的卡片时,onenterbackward事件才可能发生。
与onenterforward事件类似,onenterbackward事件也需要包含在card元素、template元素或onevent元素的标签中进行定义。其具体
语法格式如下:
<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href"
ontimer="href">
内容(content)
</card>
或:
<template onenterforward="href" onterbackward="href" ontimer="href">
内容(content)
</template>
或:
<onevent type="onterbackward">
<go href="href"/>其他任务(task)
</onevent>
前两种格式中,onterbackward事件是作为card元素或template元素标签中的一个属性进行定义的,该属性即为onterbackward,它指
定了一个超链(href)的URL地址,当用户使用prev等任务项回到地址时,浏览器就会打开URL指定的卡片。
后一种格式中,onterbackward事件作为onevent元素的一给类型值,并结合<go/>标签指定事件激活时浏览器需要打开的卡片的URL地
址。
3.3.5 onpick事件
onpick事件在定义时一般通过onpick属性指定一些项目,当用户选择或取消这些项目时,即可触发onpick事件,执行onpick属性所指
定的项目,如打开卡片、卡片组或其他事件等。onpick事件通常在option元素的标签中进行定义,其语法格式如下:
<option value="value" onpick="href">
内容(content)
</opiton>
可以看出onpick时间作为option元素的一个属性来定义具体的动作。这个属性即onpick,它指定了事件触发时浏览器需要定位的超链
的URL地址。
3.3.6 onevent元素
onevent元素通过<onevent>和</onevent>标签可以把包含的任务与特定的时间捆绑在一起。当用户激活这一特定事件时,onevent元
素所绑定的任务就会被立即执行。onevent元素的语法格式如下:
<onevent type="type">
任务(task)
</onevent>
其中task是与onevent元素关联的动作,也是条件激活时浏览器即将执行的内容。与do元素一样,onevent元素中用户也必须绑定且只
能绑定go、prev、noop和refresh四种元素所实现任务中的一个任务,go元素用于定位指定URL地址、prev元素用于定位并打开前一操
作或任务,noop为空操作,refresh用于刷新当前卡片组或任务。
onevent元素只有一个属性,即type属性,它是必选属性,主要用于定义特定事件的名称。该属性值的数据类型为CDATA型。
3.3.7 postfield元素
postfield元素用于指定当浏览器接到URL请求时,向原服务器(origin server)传送的域名其域值。传输时,传输域及传输值的实
际编码方式主要依赖于浏览器与原服务器的通信方式。postfield元素是通过单独?lt;postfield/>标签进行定义的,其语法格式如下:
<postfield name="name" value="value">
它共有两个属性:name与value,它们的取值均属于VDATA型数据。其中,name属性用于指定传输域的名称,value属性用于定义传输
的值。这两个属性均为必选属性。
分享到:
相关推荐
《VS2005 WAP开发入门》 Visual Studio 2005(VS2005)是微软推出的一款强大的集成开发环境,它支持多种开发任务,包括创建WAP(Wireless Application Protocol)网站。WAP是一种标准协议,用于在移动设备上提供...
快速入门WAP开发,你需要以下工具: 1. 开发环境:安装支持WAP开发的集成开发环境(IDE),如Eclipse或NetBeans,这些IDE通常有插件支持WAP项目创建和调试。 2. WAP模拟器:为了在没有真实移动设备的情况下测试应用...
**WAP开发使用手册入门** WAP(Wireless Application Protocol,无线应用协议)是一种在移动设备上实现互联网访问的技术标准,它使得用户可以通过手机等移动设备浏览网页、发送电子邮件、下载数据等内容。本《WAP...
本篇内容将围绕“WAP开发常用资料入门学习”展开,详细介绍WAP的基本概念、主要技术以及开发实践。 1. **WAP基础知识**: WAP是为了解决移动设备的屏幕小、带宽有限等问题而设计的。它使用一种称为WML(Wireless ...
随着WAP技术的发展,市场上出现了多种WAP开发工具包,帮助开发者更加高效地进行WAP网站前端开发。以下是一些主流的WAP工具包: ##### 1. Ericsson WapIDE 2.0 - **特点**: - 集成化的开发环境,支持设计、测试等...
**3.4 变量设置元素与变量设置的有关规定** - **变量**:存储数据值,用于程序逻辑。 - **元素**:如`<set>`标签用于设置变量值。 **3.5 用户输入处理元素** - **处理用户输入**:如按钮点击、表单提交等。 - **...
本教程覆盖了从入门到进阶的WAP开发过程,是学习WAP技术的理想资源。其中,`wml script`是WAP环境中的一种脚本语言,用于增强WAP页面的交互性。 **WAP基础** 1. **WAP架构**:WAP采用了分层的结构,包括用户代理...
4. **WAP开发工具**:介绍如何使用WAP开发工具,如WAP模拟器,进行测试和调试。 5. **WAP优化**:讨论如何提高WAP页面的加载速度和用户体验,包括压缩内容、优化图片尺寸等技巧。 6. **实践案例**:提供实际的WAP...
提到的`wap20.ppt`文件可能是一份关于WAP 2.0开发的PPT教程,通常会涵盖上述内容的详细解释和实例,是初学者很好的入门教材。 总的来说,WAP 2.0开发需要理解XHTML MP和CSS的基本原理,遵循移动设备的页面设计原则...
**J2ME手机开发入门源码详解** Java 2 Micro Edition(J2ME)是Java技术的一个重要分支,主要用于嵌入式系统,如移动设备、智能家电等。它提供了跨平台的能力,使得开发者可以编写一次代码,到处运行。在本文中,...
开发者只需要熟悉HTML、XHTML和CSS基础,就能轻松入门WAP2.0应用开发。使用相同的开发工具,既可以创建网页,也可以创建适应移动设备的WAP站点。此外,WAP2.0的向后兼容性意味着原有的WML和WMLScript内容可以经过...
综上所述,"J2ME移动开发视频讲义2入门教程"将引导你从零开始,逐步掌握J2ME开发的基本概念、工具使用、用户界面设计、网络通信、资源管理和应用部署等方面的知识,为你的移动开发之路打下坚实的基础。
### MTK软件开发入门知识点详解 #### 一、MTK软件架构 MTK(MediaTek)作为一家全球领先的芯片设计制造公司,在移动通信领域提供了多种解决方案。本节将详细介绍MTK软件开发的基础架构。 1. **MS Executable ...
**WAP建站基础教程——WAP(WML)开发详解** WAP(Wireless Application Protocol,无线应用协议)是一种在移动设备上访问互联网的技术,主要用于简化版网页浏览,尤其适用于早期功能手机。WML(Wireless Markup ...
《J2ME手机开发入门》是一本面向初学者的书籍,旨在帮助读者快速掌握Java Micro Edition(J2ME)在手机应用开发中的基础知识和技术。J2ME是Java平台的一个子集,专门用于嵌入式设备,如早期的智能手机和平板电脑。...
这可能涵盖界面布局、交互逻辑、图形元素的创建,以及与底层系统功能的集成。开发者需要熟悉图形用户界面设计原则,以及如何利用MTK提供的API和库来构建用户友好的界面。 综上所述,MTK开发涵盖了从底层硬件驱动到...
**三、JSP WAP开发基础** 1. **WML与XHTML-MP**:WML是一种专为移动设备设计的语言,类似于XML,用于创建WAP网站。随着设备性能提升,XHTML-MP成为更常见选择,它扩展了XHTML,支持更多的HTML特性。 2. **WAP ...
J2ME为移动设备提供了丰富的应用程序开发环境,尤其是在手机游戏领域,它曾经是开发手机游戏的主流技术之一。 在"J2ME手机游戏编程入门"这个主题中,我们主要会学习以下几个核心知识点: 1. **J2ME架构**:J2ME由...