1、第一节第一节 WML手机编程技术手机编程技术第二节第二节 HTML5手机页面编程技术手机页面编程技术手机页面编程技术基础手机页面编程技术基础 HTML与与WMLWML(Wireless Markup Language-无线标记语言)是XML的一个应用子集,WML是专门为手持式移动通信终端(手机)设计的,它可以显示各种文字、图像等数据,内置于移动设备中的微型浏览器能够解释执行这种标记语言。WML语言的结构和HTML类似,主要包括元素和标签。元素是符合DTD(文档类似定义)的文档组成部分,如title(文档标题)、IMG(图像)、table(表格)等等,元素名不区分大小写。WML手机页面编程技术手
2、机页面编程技术 HTML与与WMLWML语言使用标签来规定元素的属性和它在文档中的位置。HTML编写的内容目的主要在PC机上用浏览器进行查看,而 WML语言编写的文件内容则是专门用来在手机等一些移动终端显示屏上显示,供人们阅读,并且同样也可以向使用者提供人机交互界面,接受使用者输入的查询等信息,然后向使用者返回他所想要获得的最终信息。与HTML 编写的内容相比,WML消耗的内存和cpu时间更少,因此,WML更适合移动电话等手持移动设备。WML手机页面编程技术手机页面编程技术 HTML与与WMLWML是一种相对轻量级的标记语言,由于它取消了动态、表单等结构,因此其网页结构足够简洁,访问起来带来的
3、流量较少,也容易维护。对于HTML来说,一些手机访问可能不支持该脚本,无法显示,就算可以,流量代价也较大。如果内容很的话,手机内存又不大,对于某些手机来说还可能导致死机。如果说要做WAP网站,一定要懂WML语言。HTML语言的初衷是给PC机用的,虽然说现在已经有了较新的HTML语言版本可以适用于手机,正在跨步式的取代WML语言的地位,但是WML语言通俗易懂,简单经典的特点,还是非常适合手机页面编程初学者的。WML手机页面编程技术手机页面编程技术WML与与WAP设备设备WML手机页面编程技术手机页面编程技术宏观上,WML适用的无线设备通常具有以下特点:与普通的个人计算机相比,体积较小与普通的个人
4、计算机相比,体积较小设备内存有限,且设备内存有限,且CPU性能也有限性能也有限通讯带宽较窄、时延较长通讯带宽较窄、时延较长WML与与WAP设备设备WML手机页面编程技术手机页面编程技术细化上来说,支持WML的设备主要具有的典型特征如下:(1)有一个显示屏幕,可以显示)有一个显示屏幕,可以显示4行字符,每行行字符,每行12个字符;个字符;4行字符中通常包括保留给功能按钮的那一行字符中通常包括保留给功能按钮的那一行;行;(2)支持数字和字符的输入;)支持数字和字符的输入;(3)支持垂直和水平滚动的箭头按键;)支持垂直和水平滚动的箭头按键;(4)支持操作者使用箭头或数字按钮进行选择;)支持操作者使用
5、箭头或数字按钮进行选择;(5)支持)支持ASCII的可打印码;的可打印码;(6)通常都有两个可编程功能键,即)通常都有两个可编程功能键,即Accept键和键和Options键,一般安排在接近键盘的屏幕下方;键,一般安排在接近键盘的屏幕下方;(7)通常有一个)通常有一个Prev导航键。导航键。WML语言编写环境语言编写环境WML手机页面编程技术手机页面编程技术使用WML语言编写WAP网页或应用时,需要使用一个编辑器进行编辑。与HTML编程一样,WML编写的程序也是纯文本文件,可以使用任一文本编辑器进行编写,比如Windows系统中的“记事本”等,也可以使用WAP开发工具包的编辑器进行编写,比如N
6、okia WAP Toolkit等。如果要使用“记事本(NotePad)”来编写WML程序,则可在Windows系统中,点击鼠标右键新建文本文件,屏幕上随后就会出现它的编辑窗口,从中就可以输入并编写WML程序了。WML语言编写环境语言编写环境WML手机页面编程技术手机页面编程技术Hello World!输入完成时将文件的扩展名保存为.wml而不是.txt。WML语言编写环境语言编写环境WML手机页面编程技术手机页面编程技术输入完上述hello.wml程序后,如何查看它的运行效果呢?最直接的工具是通过手机进行查看,但首先需要搭建WAP服务器,搭建完成后将该程序复制到WAP服务器中,并在手机URL
7、栏里输入http:/127.0.0.1/wap/hello.wml,即可在浏览器窗口中查看hello.wml页面的运行效果。hello.wml程序在窗口中显示一个名为“Title”的标题,及一句“Hello World!”的文字。需要说明的是,“http:/127.0.0.1/wap/hello.wml”中的“127.0.0.1”是指服务器所在计算机的默认IP地址。WML语言编写环境语言编写环境WML手机页面编程技术手机页面编程技术在实际操作中,还可以在PC端使用模拟器查看运行效果,比较有名的模拟器是WinWap,通过WinWap可以直接打开后缀为.wml的文件,打开之后便可看到运行效果。这种
8、方法操作起来较为简单,但是看到的测试效果可能会与实际手机上看到的效果有一些差别。而且不能提供编辑、编译和调试的集成环境。WML程序结构程序结构WML手机页面编程技术手机页面编程技术与HTML类似,WML的主要语法也是元素和标签。WML使用标签来规定元素的属性和它在文档中的位置。标签使用小于号()括起来,即采用“”的形式。标签分单独出现的标签和成对出现的标签两种。大多数标签是成对出现的,由首标签和尾标签组成。首标签和尾标签又分别称为起始标签和终止标签。首标签的格式为“”,尾标签的格式为“”。成对标签用于规定元素所涵的范围,比如和标签用于界定黑体字的范围,也就是说,和之间包住的部分采用黑体字显示。
9、单独标签的格式为“”,它的作用是在相应的位置插入元素。如标签表示在该标签所在位置插入一个换行符。WML程序结构程序结构WML手机页面编程技术手机页面编程技术分析书上的案例程序:该程序运行后将在手机屏幕上依次显示3屏信息。先显示“你好”,然后显示“这里是新生登记处”,最后显示“请在此办理报到”。显示时每屏文本出现的位置不一样,每屏都有标题“Toolkit Demo”,相邻两屏之间延时为20,其单位大小为1/10秒,延时2秒。WML程序结构程序结构WML手机页面编程技术手机页面编程技术(1)语法。)语法。WML的语法与的语法与HTML极为相似,仍然是极为相似,仍然是一种标记语言,并且延续了一种标记
10、语言,并且延续了XML的语法规则。具体的的语法规则。具体的语法规则我们后面会详细介绍的。语法规则我们后面会详细介绍的。(2)文件声明。所有的)文件声明。所有的WML程序必须在文件的开头程序必须在文件的开头处声明处声明XML文件类型,包括文件类型,包括XML的版本,的版本,WML的文的文档类型、所用规范等。声明形式如下:档类型、所用规范等。声明形式如下:(3)标签。在)标签。在WML语言中需要使用标签,其使用形语言中需要使用标签,其使用形式与式与HTML和和XML等标记语言中的形式是完全一致的。等标记语言中的形式是完全一致的。WML程序结构程序结构WML手机页面编程技术手机页面编程技术(4)元素
11、。)元素。WML的元素用于描述卡片组的元素用于描述卡片组(Deck)的标的标记信息及结构信息。一个元素通常由一个首标签、内记信息及结构信息。一个元素通常由一个首标签、内容、其他元素及一个尾标签组成,具有两种结构之一:容、其他元素及一个尾标签组成,具有两种结构之一:内容内容或或。元素包含的内容。元素包含的内容中还可以有元素,这些元素也是由首标签、相应内容、中还可以有元素,这些元素也是由首标签、相应内容、其他元素及尾标签组成。不包含内容的元素称为空元其他元素及尾标签组成。不包含内容的元素称为空元素,它退化成一个单独的标签。或者说,单独的标签素,它退化成一个单独的标签。或者说,单独的标签也是一个元素
12、。也是一个元素。(5)属性。)属性。WML与与XML一样,其标签可以包含很多一样,其标签可以包含很多属性。属性用于给标签提供必要的附加信息,且属性属性。属性用于给标签提供必要的附加信息,且属性内容通常在起始标签内使用。不过,属性内容不会被内容通常在起始标签内使用。不过,属性内容不会被浏览器显示,它只作为参数为标签提供必要的信息。浏览器显示,它只作为参数为标签提供必要的信息。WML程序结构程序结构WML手机页面编程技术手机页面编程技术(6)文档结构。文档结构。WML文档是由文档是由“卡片卡片(Card)”和和“卡片组卡片组(Deck)”构成的,一个构成的,一个Deck是一个或多个是一个或多个Ca
13、rd的集合。当客户终端发出请求之后,的集合。当客户终端发出请求之后,WML即从即从网络上把网络上把Deck发送到客户的浏览器,这时用户就可发送到客户的浏览器,这时用户就可以浏览以浏览Deck内包含的所有内包含的所有Card,而不必从网上单独,而不必从网上单独下载每一个下载每一个Card。程序中的第一个。程序中的第一个Card是缺省的可是缺省的可见的见的Card。WML程序结构程序结构WML手机页面编程技术手机页面编程技术WML程序的基本结构:程序的基本结构:Some contents.WML程序结构程序结构WML手机页面编程技术手机页面编程技术(1)声明。)声明。WML程序由许多程序由许多De
14、ck组成,对于每一个组成,对于每一个Deck,在其文档开头必须进行,在其文档开头必须进行XML的声明和文档类型的声明和文档类型DOCTYPE的声明。的声明。XML声明总是在文件的第一行,声明总是在文件的第一行,注意前面最好不要有空格或者换行:注意前面最好不要有空格或者换行:,紧跟着是,紧跟着是DOCTYPE声明,注意声声明,注意声明时字母的大小写不要搞乱:明时字母的大小写不要搞乱:(2)标签。该标签用于包含和定义标签。该标签用于包含和定义WML的一的一个个Deck。它有一个可选的。它有一个可选的xml:lang属性来制定文档的属性来制定文档的语言,比如语言,比如表示文档语言为中表示文档语言为中
15、文。文。WML程序结构程序结构WML手机页面编程技术手机页面编程技术(3)标签。该标签用于包含和定义标签。该标签用于包含和定义Deck的的相关信息。相关信息。标签之间可以包含一个标签之间可以包含一个标签和多个标签和多个标签。标签。(4)标签。它的一般形式是标签。它的一般形式是,主要用于指定当前,主要用于指定当前Deck的访问控制信息,有两个可选的属性。其中,的访问控制信息,有两个可选的属性。其中,domain用来指定域,默认值为当前域,用来指定域,默认值为当前域,path用来指用来指定路径,默认值为定路径,默认值为“/”,即根目录。由于,即根目录。由于单独使用,所以要用单独使用,所以要用“/”
16、结尾。结尾。WML程序结构程序结构WML手机页面编程技术手机页面编程技术(5)标签。它的一般形式是标签。它的一般形式是,用于提供当前,用于提供当前Deck的的meta信息,信息,包括内存数据处理方式,以及数据传输方式和处包括内存数据处理方式,以及数据传输方式和处理方式等。理方式等。(6)标签。一个标签。一个Deck可以包含多个可以包含多个Card,每个每个Card的内容可能不止一屏显示。对于每一个的内容可能不止一屏显示。对于每一个Card,WML均使用均使用和和进行包含和进行包含和定义。定义。WML字符使用规则字符使用规则WML手机页面编程技术手机页面编程技术大小写敏感大小写敏感空格空格标签标
17、签不显示的内容不显示的内容变量WML手机页面编程技术手机页面编程技术WML编程中可以使用变量,变量使用前必须进行定义。变量一旦在Deck中的某一个Card上定义过,其他Card则可以不必重新定义就能直接调用该变量。定义变量的语法格式为:$identifier$(identifier)$(identifier:conversion)其中identifier指变量名,或说变量标识符;conversion指变量的替代。变量名是由US-ASCII码、下划线和数字组成的,并且只能以US-ASCII码开头。变量名严格区分大小写,也即,变量名是大小写敏感的。变量WML手机页面编程技术手机页面编程技术定义变量
18、的语法在定义变量的语法在WML中享有最高的解释优先级。中享有最高的解释优先级。有关变量的使用说明如下:有关变量的使用说明如下:(1)在)在WML中,变量可以在字符串中使用,并且中,变量可以在字符串中使用,并且在运行中可以更新变量的值。在运行中可以更新变量的值。(2)当变量等同于空字符串时,变量将处于未设置)当变量等同于空字符串时,变量将处于未设置状态,也就是空状态,也就是空(Null)。(3)当变量不等同于空字符串时,变量将处于设置)当变量不等同于空字符串时,变量将处于设置状态,也就是非空状态,也就是非空(Not Null)状态。状态。(4)在)在“$identifier”形式下,形式下,WM
19、L通常以变量名通常以变量名后面的一个空格表示该变量名的结束。如果在某些后面的一个空格表示该变量名的结束。如果在某些情况下空格无法表示一个变量名的结束,或者变量情况下空格无法表示一个变量名的结束,或者变量名中包含有空格,则必须使用括号将变量名括起来,名中包含有空格,则必须使用括号将变量名括起来,即采用即采用“$(identifier)”的形式。的形式。变量WML手机页面编程技术手机页面编程技术WML程序中的变量是可以替代的,我们可以把变量程序中的变量是可以替代的,我们可以把变量的数值赋给的数值赋给Card中的某一文本。有关变量替代说明中的某一文本。有关变量替代说明如下:如下:(1)在)在WML程
20、序中,只有文本部分才可以实现替程序中,只有文本部分才可以实现替代。代。(2)替代一般在运行期发生,而且替代不会影响变)替代一般在运行期发生,而且替代不会影响变量现在的值。量现在的值。(3)任何标签和属性都不能使用变量来替代。)任何标签和属性都不能使用变量来替代。(4)替代是按照字符串替代的方式实现的。)替代是按照字符串替代的方式实现的。(5)如果一个没有定义的变量要实现替代,那么该)如果一个没有定义的变量要实现替代,那么该变量将被看作空字符串对待。变量将被看作空字符串对待。变量WML手机页面编程技术手机页面编程技术变量在语法中有最高的优先级,包含变量声明字变量在语法中有最高的优先级,包含变量声
21、明字符的字符串将被当作变量对待,所以如果要使程符的字符串将被当作变量对待,所以如果要使程序显示序显示“$”符号,则需要连续使用两个符号,则需要连续使用两个“$”进进行说明。例如:行说明。例如:Your account has$15.00 in it一句的显示结果为:一句的显示结果为:Your account has$15.00 in it卡片与卡片组WML手机页面编程技术手机页面编程技术同一卡片组通常会含有许多卡片,这些卡片的定义、属性或格式等通常大同小异。如果我们逐一定义各个卡片,显然是十分麻烦的。为此,WML提供了卡片组模板的功能,模板内定义了一系列标准和参数,可以应用到同一卡片组的所有卡
22、片中去,从而能够大大地提高我们的编程效率。WML文档的信息是通过卡片(Card)集和卡片组(Deck)集的形式进行组织的。一个Deck是一个或多个Card的集合。当客户终端发出请求之后,WML即从网络上把Deck发送到客户的浏览器,Deck是服务器发送信息的最小单位。用户浏览器收到Deck后,可以浏览其中包含的所有Card。WML与与URL、程序段锚点、程序段锚点WML手机页面编程技术手机页面编程技术程序段锚点根据文档URL规则进行定义,并按照程序段标识符前加井字号(#)的方式书写。使用程序段锚点,WML程序可以在同一卡片组中定位不同的卡片。如果在程序中不指定程序段,那么程序中引用的URL名称
23、则指整个卡片组,而且卡片组的名称同时也是本卡片组内的第一个卡片的名称。例如,一句中的go元素就包含了一个URL地址,该地址指定了同一卡片组中的另一个卡片。该URL地址就包含了程序段标识符(#),“#Next_Card”就是一个程序段锚点。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术1、wml元素元素WML的wml元素用于定义一个卡片组,并通过与标签包含和封装该卡片组中的所有信息。它的语法格式如下:内容(content)其中xml:lang=“lang”用于指定文档所用语言,语言“lang”的值属于NMTOKEN型数据。wml元素
24、中包含的内容(contend)中除了文本、图像等信息之外,还可以包含head、template及card元素。其中head、template元素如果包含则只可以包含一次,而card元素必须至少包含一次。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术2、template元素元素template元素用于为当前卡片组中的所有卡片定义一个模板,统一规定卡片的某些参数。模板中的事件处理功能则可将这些参数自动应用于同一卡片组中的所有卡片。template元素通过和标签含所需内容(content)而实现模板功能的,其语法如下:内容(conten
25、t)WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术template元素属性的功能及用法说明如下:(1)oneterforward。当用户在浏览器中进入当前卡片时,该属性将指定超链(href)的URL地址,浏览器将据此打开URL指定的卡片或事件。(2)oneterbackward。与上一属性类似,该属性也可以指定其相应卡片或事件的URL地址。如果用户浏览时执行prev任务,那么浏览器就会定位到该属性所指定超链(href)的URL地址,并打开URL指定的卡片或事件。(3)ontimer。当指定事件timer过期的时候,用户浏览器就根据
26、ontimer属性指定的URL打开相应的卡片。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术3、card元素元素WML提供了card元素,通过和标签定义一个卡片的各种属性、包含内容。它的语法格式如下:内容(content)card元素包含的内容(content)中除了文本、图像信息之外,还可以包含onevent、timer、do和p元素。其中,timer元素只可以使用一次,其余3种可以使用多次。而且,如果card元素包含onevent元素或timer元素的话,那么onevent元素必须放在do或p元素。这个优先顺序是不能乱的。WM
27、L的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术(5)onenterforward。onenterforward事件仅当用户使用go任务或类似于go的任务浏览卡片时才可发生,即如果用户执行go任务,则浏览器就会定位标签中指定超链(href)的URL指定的卡片。(6)onenterbackward。该属性可以指定其响应时间的URL地址。如果用户浏览时执行prev任务,那么浏览器就会定位到该属性所指向超链接(href)的URL地址,并打开URL指定的卡片。(7)ontimer。当指定时间timer过期的时候,用户浏览器就根据ontimer属
28、性指定的URL打开相应的卡片。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术card元素属性的功能及用法介绍如下:(1)id。用于指定card的名字。(2)title。用于为卡片制订一个简单的标题或说明信息。(3)newcontext。用于指定WAP手机浏览当用户重新进入的时候是否需要初始化卡片中所有的内容。(4)ordered。用于向用户手机的浏览器指明卡片内容的组织形式,以便让浏览器根据自身特点及卡片内容组织及时安排显示布局。它有两种布尔值的设置,即true和false。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片
29、、卡片组及其元素WML手机页面编程技术手机页面编程技术4、access元素元素access元素是由一个单独的标签标签实现的元素。用于定义WML整个卡片组的操作权限,即访问控制参数。access元素必须在head元素内和其它的meta信息一起声明,而且每个卡片组只能有一个access元素。其语法格式如下:access元素属性的功能及用法如下:(1)domain。用于指定对卡片组进行操作的URL域,默认域是当前卡片组所在的域。(2)path。用于指定卡片组操作的其它卡片组的根目录。默认目录是“/”,即当前卡片组所在的根目录。WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素W
30、ML手机页面编程技术手机页面编程技术5、meta元素元素meta元素用于定义WML卡片组相关的通用meta信息。该元素是由一个单独的标签即标签实现的元素,其语法格式如下:其中,name属性和http-equiv属性只能选择使用一个;content属性是必选的,其值根据属性而定;scheme属性目前尚不支持;forua属性为可选属性。各属性功能及用法说明如下:WML的元素和标签的元素和标签-卡片、卡片组及其元素卡片、卡片组及其元素WML手机页面编程技术手机页面编程技术(1)content。该属性用于指定替代meta信息的性质的值,是不必选的。(2)name。用于指定meta信息性质的名称。(3)
31、http-equiv。该属性用于替代name属性,可将meta数据转为WSP或HTTP协议的响应头。(4)forua。该属性用于指定那些开发者希望传送至用户浏览器的性质。(5)scheme。该属性用于指定解释meta信息性质值的形式或结构。WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术1、go任务任务go任务是通过go元素来声明的,而go元素是通过和标签进行定义的。go元素主要用来定义浏览器需要导航的URL地址。如果该地址是一个WML卡片或卡片组的名字,则浏览器就会打开并显示相应的卡片、卡片组;否则,浏览器就会执行该URL指定的任务或事件等。go
32、任务的语法格式如下:内容(context)WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术其中属性的功能及用法介绍如下:(1)href。该属性用于指定目标URL地址,比如让浏览器显示的卡片的地址即名称等。属性是必选的,其它属性为可选。(2)sendrefrer。该属性用于指定是否传递调用href所指定的URL,也是当前页的URL,即HTTP头中HTTP_REFERER。有两种选择:true或false。其中,默认值为false。WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术(3)method。与HTM
33、L中的表单FORM的method属性一样,该属性用于指定表单是以GET的方式还是POST的方式递交,以便通用网关接口CGI处理。默认值为GET,但如果没有指定method属性,而和之间存在postfield元素,则WAP手机浏览器会自动以POST方式传递。(4)accept-charset。当WEB服务器处理来自浏览器的输入信息时,该属性可指定服务器进行数据编码时必须采用的字符列表。也就是说,该属性指定的字符集替代HTTP头里指定的字符集,以便做为服务器选用字符集的标准。WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术2、prev任务任务prev任
34、务是由prev元素实现的。该元素通常是一个单独的标签,不过有时可由和一对标签进行定义。它用于指定将浏览器导航至历史推栈中的前一个URL地址。在浏览器操作的历史推栈中,prev任务执行的是“取出”操作,将前一个URL地址取出,并把当前URL地址推进历史推栈。prev任务的语法格式为:或内容(content)WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术3、refresh任务任务refresh任务由refresh元素声明,它用于刷新当前的卡片,对卡片内指定的变量进行更新。其语法格式为:内容(refresh)其中包含的内容(content)中一般有se
35、tvar元素,其语法格式为:,它可以指定更新的变量名name,及更新的变量值value。另外,refresh元素也可以不包含setvar元素。而通过时间限制(timer元素)对卡片进行刷新。WML的元素和标签的元素和标签-任务及其元素任务及其元素WML手机页面编程技术手机页面编程技术4、noop任务任务noop任务由noop元素进行声明,表示什么也不做,是一个空操作,在替代卡片组级的do元素是十分有用,该元素是一个单独的标签,即标签。其语法格式如下:noop 元素没有属性,下面的简单程序就包含了noop元素实现得空任务操作:WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面
36、编程技术手机页面编程技术1、do元素元素do元素提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。通过和标签将用户交互和某一个任务联系在一起。用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。当用户激活这些交互功能时,用户浏览器就会执行与do元素相关的任务。其语法格式如下:任务(task)WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术其中task是与do元素关联的动作,也是条件激活时浏览器即将执行的内容。在do元素中,用户必须绑定且只能绑定go、prev、noop和refresh四种元素所实现任务中的一个任务。
37、go元素用于定位指定的URL地址,prev元素用于定位并打开前一操作或任务,noop为空操作,refresh用于刷新当前卡片组或任务。do元素可以用于卡片一级,也可以用于卡片组一级。当用于卡片组一级时,do元素必须包含在template元素中,由此定义的do元素同时应用于当前卡片组的所有卡片。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术其中属性的功能及用法介绍如下:(1)type。用于指定do元素的类型(type)也即需要关联、绑定的用户交互事件,是必选属性。do元素的类型(type)及执行条件介绍如下:accept。当用户选择或按下相应功能键
38、时或按钮时,浏览器接受或激活当前所作选择。prev。激活prev键时,浏览器将导航到一个历史记录中的前一个卡片。help。激活help功能键或相应按钮时,浏览器显示与当前内容相关的帮助信息。reset。激活reset功能键或相应按钮时,清除或重置当前卡片组或浏览器的状态。option。激活option功能键或相应按钮时,浏览器显示与当前内容有关的选项或附加操作。delete。激活delete功能键或相应按钮时,删除当前项目或选择。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术(2)label。该属性指定的文本字符串可以表示用户的交互事件。(3)n
39、ame。该属性用于指定do元素所绑定事件的名称。如果多个do元素指定了相同的name,那么他们绑定的事件统属一个。如果卡片一级与卡片组一级中do元素指定了相同的事件名,那么卡片一级的事件将被优先执行,卡片组一级的事件将被忽视。WML规定,在同一卡片或在同一模版中,不得指定具有相同事件名(name)的两个或两个以上的do元素。如果name属性值为空,则相当于没有指定name属性,这是do元素执行的事件或操作由type的属性值决定。(4)option。指定浏览器是否忽视do元素及其包含的任务。有两个可选值:true和false。如果值为true,则浏览器将忽视当前do元素,即不执行它所绑定的任务。
40、反之,若值为false,则执行do元素。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术2、ontimer事件事件ontimer用于指定一个事件。当标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。ontimer的时间可以是一个URL地址,一个卡片组,一个WML网页,一副图象或其他符合URL定位的规则的文件。标签指定的时间为正整数,单位大小为1/10秒。ontimer事件只能包含在card元素或template元素的标签中进行定义,其语法形式如下:WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面
41、编程技术内容(content)或:内容(content)ontimer事件只有一个属性,即ontimer。它用于指定一个超链接(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的URL打开相应的卡片。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术3、onterforward事件与事件与onenterbackward事件事件onenterforward事件仅当用户使用go任务或类似于go任务的任务来定位和浏览卡片时才可发生。onenterbackward事件当用户使用prev任务或类似的任务来导航至某一卡片,
42、才可发生。换句话说,当用户从历史堆栈中选取URL地址,并通过浏览器打开这一地址对应的卡片时,onenterbackward事件才可发生。onenterforward事件和onenterbackward事件都需要包含在card元素、template元素或onevent元素的标签中进行定义。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术3、onterforward事件与事件与onenterbackward事件事件onenterforward事件仅当用户使用go任务或类似于go任务的任务来定位和浏览卡片时才可发生。onenterbackward事件当用
43、户使用prev任务或类似的任务来导航至某一卡片,才可发生。换句话说,当用户从历史堆栈中选取URL地址,并通过浏览器打开这一地址对应的卡片时,onenterbackward事件才可发生。onenterforward事件和onenterbackward事件都需要包含在card元素、template元素或onevent元素的标签中进行定义。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术4、onpick事件事件onpick事件在定义是一般通过onpick属性指定一些项目,当用户选择或取消这些项目时,即可触发onpick事件,执行onpick属性所指定的项
44、目,如打开卡片、卡片组或其他事件等。onpick事件通常在option元素的标签中进行定义,其语法格式如下:内容(content)可以看出onpick事件作为option元素的一个属性来定义具体的动作。这个属性即onpick,它指定了事件触发时浏览器需要定位的超链的URL地址。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术5、onevent元素元素onevent元素通过和标签可以把包含任务与事件绑定在一起。当用户激活这一特定事件时,onevent元素所绑定的任务就会被立即执行。onevent元素的语法格式如下:任务(task)WML的元素和标签的
45、元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术 其中task是与onevent元素关联的动作,也是条件激活时浏览器即将执行的内容。与do元素一样,onevent元素中用户也必须绑定且只能绑定go、prev、noop和refresh四种元素所实现任务中的一个任务,go元素用于定位指定URL地址、prev元素用于定位并打开前一操作或任务,noop为空操作,refreshing用于定位并打开前一操作或任务,noop为空操作,refresh用于刷新当前卡片组或任务。onevent元素只有一个属性,即type属性,它是必选属性,主要用于定义特定事件的名称。该属性值得数据类型为
46、CDATA型。WML的元素和标签的元素和标签-事件及其元素事件及其元素WML手机页面编程技术手机页面编程技术6、postfield元素元素postfield元素用于指定当浏览器接到URL请求时,向原服务器(origin server)传送的域名其值域。传输时,传输域及传输值的实际编码方式主要依赖于浏览器与原服务器的通信方式。postfield元素是通过单独的标签进行定义的,其语法格式如下:它共有两个属性:name与value,它们的取值均属于VDATE型数据。其中,name属性用于指定传输域的名称,value属性用于定义传输的值。这两个属性均为必选属性WML的元素和标签的元素和标签-变量设置元
47、素变量设置元素WML手机页面编程技术手机页面编程技术setvar元素元素 setvar元素用于指定在当前上下文内容中的变量的值,从侧面影响正在运行的任务。其语法格式如下:它有两个属性:name和value。前者用于指定变量的名称,后者用于指定所需赋给变量的值。这两个属性都是必选的,它们的数据类型均属于VDATA型。如果name属性所规定的变量名不合法或不符合运行环境的要求,那么setvar元素在WML程序运行中将被忽视,不能发挥其应有的作用。WML的元素和标签的元素和标签-变量设置元素变量设置元素WML手机页面编程技术手机页面编程技术WML编程中可以使用变量,变量使用前必须进行定义。setva
48、r元素可用来设置变量,设置是setvar元素一般需要在go、prev或refresh元素中进行定义。利用input和select元素也可以设置变量。其中前者是将用户输入的文本赋给变量,作为变量的值;而后者则将用户从option元素中选择的value属性的值赋给变量。WML的元素和标签的元素和标签-变量设置元素变量设置元素WML手机页面编程技术手机页面编程技术设置变量时,以下情况还应当引起注意:(1)可以使用WMLScript的变量值设置WML的变量,反之亦然。也就是说,使用WML及WMLScript编写程序时,它们可以使用同名编程。(2)在WAP开发工具中,通常提供有对变量进行管理和维护的选项
49、卡或对话框,开发人员从中也可以对相应的变量进行设置及编辑。(3)在当前上下文内容中,可以使用card元素的newcontext属性来消除所有的变量。WML的元素和标签的元素和标签-用户输入处理元素用户输入处理元素WML手机页面编程技术手机页面编程技术1、input元素元素input元素用于定义文本实体对象,包含有对输入文本内容的格式、数据类型、长度、值、变量名等多种属性的具体规定。input元素是WML编程中处理用户交互活动的重要元素,它通过单独的标签进行定义,其语法格式如下:WML的元素和标签的元素和标签-用户输入处理元素用户输入处理元素WML手机页面编程技术手机页面编程技术其中除了name
50、属性是必选的以外,其他属性都是可选的。这些属性的功能和用法介绍如下:(1)name。该属性用于指定用来保存用户输入文本的变量和名称。定义name属性后WML将根据该属性也即变量名,为即将输入的文本实体分配储存空间,以便接受用户输入。(2)title。该属性用于input元素的标签,通常是位于输入框前的提示信息。(3)type。用于指定文本输入区的类型,有text和password两种选择。默认值为text,指定用户可以输入文本。如果选择password,则指定用户输入的文本作为密码文本处理,WML程序按文本实体接收输入的数据,而浏览器上响应用户输入显示时均为星号,由此起到保密的目的。WML的元