390 likes | 530 Views
目标 本课中,你将学习 : WML 的结构 卡片和卡片组元素 卡片和卡片组元素的属性 导航和管理卡片 模板和 noop 元素 用于格式化的标签 事件处理程序 href 和 anchor 标签 输入元素. Objectives (Contd.) WMLScript 的需要 WMLScript 解释器体系结构 WMLScript 中运算符. WML 结构 WML 把其内容结构为所谓卡片的页面,卡片可组合成卡片组 。 WML 中所有标签都是大小写敏感的 。 WML 结构可分为两部分 : 体 首部. 首部
E N D
目标 本课中,你将学习: • WML的结构 • 卡片和卡片组元素 • 卡片和卡片组元素的属性 • 导航和管理卡片 • 模板和noop元素 • 用于格式化的标签 • 事件处理程序 • href和anchor标签 • 输入元素
Objectives (Contd.) • WMLScript的需要 • WMLScript解释器体系结构 • WMLScript中运算符
WML结构 • WML把其内容结构为所谓卡片的页面,卡片可组合成卡片组。 • WML中所有标签都是大小写敏感的 。 • WML结构可分为两部分 : • 体 • 首部
首部 • 所有WML卡片组都以以下XML首部开始: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
体 • 卡片组的WML代码括在<wml>...</wml>标签对内 ,这是WML文档的体 。 • 卡片组内的卡片用<card>...</card>标签对定义 。 • <p>...</p>标签对标记作为节元素的任何文本。
稍等一下… • 讨论WML结构的两部分 。 • <card>...</card> 标签对的属性是什么?
卡片和卡片组 • WML页面称为卡片 。 • 一组卡片构成了卡片组 。 • 在卡片显示之前,完整的卡片组被下载到WAP设备。 • 卡片元素可包含文本、链接、输入字段、任务及图象 。
定义卡片所用的元素 • 用以下元素定义卡片: • WML • <wml>…</wml>标签对定义卡片组 。 • 卡片 • 用<card>...</card>标签对在<wml> …</wml>标签内定义卡片 。 • 有两个属性: • Id:属性给出卡片组内指示该卡片的唯一的标识符。 • Title:属性给出卡片的名,并由多数浏览器显示它。
定义卡片所用的元素(续) • 首部和元 • <head>...</head> 标签对包含关于整个卡片组的信息。 • <meta/> 标签定义了关于卡片组的通用元信息。 • 访问 • <access>…</access>标签对通过位置、区域、和路径把卡片的访问限制在某个卡片组。 • 包含在<head>...</head>标签对内。 • 让我们看一看显示“Hello World” 的 WML 代码
稍等一下… • 什么是卡片组?什么是卡片 ? • <meta/>标签包含什么? • <access>...</access>标签对做什么?
导航和管理卡片 • 卡片组大小 • 卡片组没有固定的大小 。但最爱用大小是1.4 KB (字节代码) 。 • 多个卡片 • 在卡片组的多张卡片的情况下,按以下方式访问卡片 : [deckname][#cardname] • 为导航卡片,需要以下标签: • <do> • <go> • <prev/>
<do>标签 • 指出当前卡上用户某种类型动作的应答。 • 有以下属性: • type • name • label
<go> 标签 • 用于导航到另一张卡片、卡片组、或位置 。 • 放在<do>或<anchor>标签内。 • 它有一个强制性属性:href属性 。
<prev/>标签 • 是空标签。 • 用于向后导航 。 • 放在<do>或<anchor>标签内 。
让我们看一看WML的代码,它有两张卡片:card1和card2。用户可用<do>, <go/> 和<prev/>标签导航它们。
稍等一下… • <do>标签的type属性指示什么? • <go>标签的功能是什么? • 要让浏览器回到刚访问过的卡片,使用哪个标签?
模板 • 对卡片组中所有卡片提供同样的功能。 • 可减少代码的重复性,因为只要一次创建选项,就可在所有的卡片中重用 。 • 用<template>...</template>标签对应用到卡片。 • 可有以下的事件属性: • onenterforward • onenterbackward • ontimer
Noop元素 • 用于执行 ‘no-operation’。 • 用于重设卡片组级的do元素。 • 用<noop/> 标签实现。
稍等一下… • 为什么要使用模板? • 重设模板的规则是什么? • 模板元素的属性是什么? • 什么是noop元素?
用标签格式化文本 • WML种格式化文本所用的标签是: • <b>…</b> • <i>…</i> • <u>…</u> • <em>…</em> • <strong>…</strong> • <big>…</big> • <small>…</small> • <br/>
用标签格式化文本 • 现在考察使用某些风格显示文本格式化的WML代码。
使用事件处理程序 • 事件 • 用来使WAP应用动态化 。 • 用WML处理<onevent>标签。 • 可用WML处理的是: • ontimer • 用来为应用设置时间。 • onenterforward • 当用户第一次打入卡片时出现。 • onenterbackward • 当用户逆向导航到以前看到的卡片时出现 。
使用事件处理程序 • 让我们考察处理事件的例子。
用href和anchor标签创建链接 • anchor是一种用于指出卡片之间导航的方法。 • 它指出正在链接的卡片的位置、以及作为anchor的文本或图象 。 • 用链接到卡片<anchor>…</anchor>标签指示Anchor。 • <go>标签意味:当anchor内的文本被选择时,显示由<go>标签的href属性所指的WML卡片,替代当前显示的卡片 。
用href和anchor标签创建链接(续) • 可用来形成WAP应用中链接的另一个标签是<a>...</a>标签对。 • 与<a>标签一起指出href属性的值 。 • 不必指出<go>标签 。
处理用户输入 • 为接受用户的字母数字数据的输入,增强了用户和WAP设备之间的交互 ,可用以下标签: • <input/>标签 • 显示屏幕上文本框 。 • 有以下属性: • name • value • type • format • size • maxlength
处理用户输入(续) • <option>…</option>标签 • 显示卡片中选项的列表。 • 选项的列表放在<select>...</select>标签对内。
稍等一下… • 使文本有下划线使用哪个标签? • 用WML可处理哪些事件? • <onevent>标签的功能是什么? • 什么是anchor元素?它与go元素有什么不同? • href属性做什么? • 用<input/>标签中哪个属性来限制特定字符数的输出?
WMLScript • 用于客户端的数据确认和操纵 。 • 在优化级使用,使得到服务器的行程减少,提高性能。
WMLScript解释器体系结构 • WMLScript interpreter • 取WMLScript字节代码作为它的输入 ,当它们被调用时执行已编码的函数 。 WMLScript解释器的体系结构
WMLScript解释器体系结构(续) • 当解释WMLScript函数时,维护以下状态信息: • 指令指针(IP) • 变量 • 操作数栈 • 函数调用栈
WMLScript中运算符 • 用来执行预定义运算的工具 。 • 使用的以下类型运算符: • 赋值运算符 • 算术运算符 • 逻辑运算符 • 关系运算符 • typeof运算符 • isvalid运算符 • 条件运算符
稍等一下… • 为什么需要WMLScript? • 什么是编译指示? • WMLScript中运算符是什么? • 什么是typeof运算符? • 什么是isvalid运算符? • 讨论WMLScript中函数。
示例应用 FineGifts.com,作为促销战役的一部分,要向由手机访问过他们站点的客户赠送礼品。为得到礼品,访问过站点的移动用户彼此注册。Web站点提供两类礼品:玩具和花。站点也允许访问者在确认他们的礼品选择之前改变所选礼品。
示例应用 WinPrizes.com是一个在移动设备上进行测验的Web站点。检查用户的回答,回答正确的某些用户给以礼品。
小结 本课中,你学习了: • 移动设备中显示的页面称为卡片 。 • 若干个卡片组成了卡片组 。 • 卡片组是Web服务器发送给客户的WML的最小单位 。 • 用模板为卡片组中所有卡片提供同样的功能 。 • 用do和onevent元素处理模板的事件。
小结(续) • Noop是空操作元素,用来阻止用户执行某种动作。 • 用相应的标签可使WML卡片中文本格式化 。 • 可在WML中处理的事件是 : • ontimer • onenterforward • onenterbackward • 使用anchor和href元素,可使卡片中文本超链接到同一个或不同的卡片组中卡片 。
小结(续) • WMLScript用于客户端数据确认和操纵 。 • 用WMLScript 解释器取出WMLScript字节代码,并执行它已编码的函数 。 • 运算符是执行如:数学计算、比较、及赋值之类预定义运算的工具 。 • 函数内应使用WMLScript的所有代码 。