...
access元素属性的功能及用法如下:
1)domain。用于指定对卡片组进行操作的URL域,默认域是当前卡片组所在的域。domain的目的是限制访问,用户浏览时浏览器将根据domain值所规定的值来得出与值匹配的地址,并访问该地址对应的卡片或事件。2)path。用于指定卡片组操作的其它卡片组所在的根目录。默认目录是“/”,即当前卡片组所在的根目录。默认目录的规定使得所有在domain域下的卡片组都可以操作当前卡片组。path的值是访问时需要匹配的路径,它的工作原理与domain十分相似,需要与路径的每个子路径相匹配,否则均属无效。
3.1.8 meta元素
meta元素用于定义WML卡片组相关的通用meta信息。该元素是由一个单独的标签即标签实现的元素,其语法格式如下:
其中,name属性和http-equiv属性只能选择使用一个;content属性是必选的,其值根据属性而定;scheme属性目前尚不支持;forua属性为可选属性。各属性功能及用法说明如下:
1)content。该属性用于指定meta信息的性质的值,是不必选的。
2)name。用于指定meta信息性质的名称。用户浏览器通常忽略已经命名meta数据,网络服务企业拒绝发送包含该属性所指定meta数据名称的内容。
3)http-equiv。该属性用于替代name属性,可将meta数据转为WSP或HTTP协议的响应头。
4)forua。该属性用于指定那些开发者希望传送值用户浏览器的性质。它有ture和fales两个取值,如果取false,则卡片组在发送往客户端以前必须用中间代理去
除meta元素信息,这是因为传输的协议可能改变;若取值为true,则meta数据必须如实送往用户的浏览器。默认的状态下,该属性的值为false。
5)scheme。该属性用于指定解释meta信息性质值的形式或结构。具体的形式或结构因meta数据的类型不同而不同。
3.2 任务及其元素
WML允许我们在程序中指定一些任务,当某些特定的事件激活时,即可执行这些任务,从而完成需要的操作。例如,我们可以设定任务,当用户按下相应的功能键时,浏览器就可以打开指定的卡片组或卡片。目前,WML提供了4个任务元素,即go、prev、noop和refresh,它们主要与do元素和onevent元素中指定的事件相响应。本节我们就对任务的这些元素做一详细介绍。
3.2.1 go任务
go任务是通过go元素来声明的,而go元素是通过和标签进行定义的。go元素主要用来定义浏览器需要导航的URL地址。如果该地址是一个WML卡片或卡片组的名字,则浏览器就会打开并显示相应的卡片、卡片组;否则,浏览器就会执行该URL指定的任务或事件等。在历史推栈中,go任务执行的是一个“推进(push)”操作,也就是说,它执行时浏览器浏览的URL地址将送入历史纪录列表中,以被它用。
go元素中可以包含任意次的setvar元素或postfield元素。postfield元素前面已有介绍,这里不再重述,setvar元素我们后面介绍。
go任务的语法格式如下:
内容(context)
其中属性的功能及用法介绍如下:
1)href。该属性用于指定目标URL地址,比如让浏览器显示的卡片的地址即名称等。属性是必选的,其它属性为可选。
2)sendreferer。该属性用于指定是否传递调用href所指定的URL的卡片的URL,也是当前页的URL,即HTTP头中HTTP_REFERER。有两种选择:true或false。其中,默认值为false。
3)method。与HTML中的表单FORM的method属性一样,该属性用于指定表单是以GET的方式还是post的方式递交,以便通用网关接口CGI处理。默认值为get,但如果没有指定method属性,而和之间存在postfield元素,则WAP手机浏览器会自动以post方式传递。
4)accept-charset。当web服务器处理来自浏览器的输入信息时,该属性可指定服务器进行数据编码时必须采用的字符集列表。也就是说,该属性指定的字符集替代HTTP头里指定的字符集,以便作为服务器选用字符集的标准。
3.2.2 prev任务
prev任务是由prev元素实现的。该元素通常是一个单独的标签,不过有时也可由和一对标签进行定义。它用于指定将浏览器导航至历史推栈中的前一个URL地址。在浏览器操作的历史推栈中,prev任务执行的是“取出”操作,将前一个URL地址取出,并把当前URL地址推进历史推栈。如果历史推栈中没有前一个URL地址,即prev/元素不执行任何任务。
prev任务的语法格式为:
或 内容(content)
在后一语法格式中,prev元素包含的内容里面一般是setvar元素,该元素的含义前面已有介绍,这里不再重述,具体的用法随后介绍。
3.2.3 refresh任务
refresh任务由refresh元素声明,它用于刷新当前的卡片,对卡片内指定的变量进行更新。其语法格式为:
内容(context)
其中包含的内容(content)中一般有setvar元素,其语法格式为,它可指定更新的变量名name,即更新的变量值value。另外,refresh元素也可以不包含setvar元素。而通过时间限制(timer元素)对卡片进行刷新。
3.2.4 noop任务
noop任务由noop元素进行声明,表示什么也不做,是一个空操作,在替代卡片组级的do元素是十分有用。该元素是一个单独的标签,即 标签。其语法格式如下:
noop元素没有属性,下面的简单程序中就包含了noop元素实现得空任务操作:
...
3.3 时间及其元素
WML提供了几个元素,专门用于处理用户浏览器的导航和事件。利用这些元素用户可以给某任务制定关联事件。那么当事件触发时,浏览器就会执行相应的任务,比如URL导航就是通过事件实现的。而且,事件可以和一个需要完成的任务捆绑在一起。事件捆绑时一般是通过几种元素及其标签声明来实现的,如go、do和onevent等元素。下面我们就讲解WML的事件元素及事件。
3.3.1 do元素
do元素提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。通过和标签将用户交互和某一个任务联系在一起。用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。当用户激活这些交互功能时,用户浏览器就会执行与do元素相关的任务。其语法格式如下:
任务(task)
其中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用于指定一个事件。当 标签指定的时间到期后,浏览器就执行ontimer所指定的这个事件。ontimer的时间可以是一个URL地址,一个卡片组,一个WML网页,一幅图像或其他符合URL定位的规则的文件。标签指定的时间为正整数,单位大小为1/10秒。
ontimer时间只能包含在card元素或template元素的标签中进行定义,其语法形式如下:
内容(content)R> 或:
mplate onenterforward="href" onenterbackward="href" ontimer="href">
内容(content)
ontimer事件只有一个属性,即ontimer。它用于指定一个超链(href)的URL地址,指定时间timer过期的时候,用户浏览器就会按照超链(href)的URL打开相应的卡片。
3.3.3 onenterforward事件
onenterforward事件仅当用户使用go任务或类似于go任务的任务来定位和浏览卡片时才可发生。设置onenterforward事件后,当用户进入当前卡片组时,浏览器就会定位onenterforward属性或标签中指定超链(href)的URL地址,并打开URL指定的卡片。
onenterforward事件需要包含在card元素、template元素或onevent元素的标签中进行定义,其语法格式为:
内容(content)
或:
内容(content)
或:
其他任务(task)
前两种格式中,onenterforward事件作为card元素或template元素标签中的一个属性进行定义的,该属性即为onenterforward,它制定了一个超链(href)的URL地址,当用户进入当前卡片时,浏览器就据此打开URL指定的卡片。这种格式制定的任务相当与go任务。
3.3.4 onenterbackward事件
当用户使用prev任务或类似的任务来导航至某一卡片时,onenterbackward事件才可发生。换句话说,当用户从历史堆栈中选取URL地址,并通过浏览器打开这一地址对应的卡片时,onenterbackward事件才可能发生。
与onenterforward事件类似,onenterbackward事件也需要包含在card元素、template元素或onevent元素的标签中进行定义。其具体语法格式如下:
内容(content)
或:
内容(content)
或:
其他任务(task)
前两种格式中,onterbackward事件是作为card元素或template元素标签中的一个属性进行定义的,该属性即为onterbackward,它指定了一个超链(href)的URL地址,当用户使用prev等任务项回到地址时,浏览器就会打开URL指定的卡片。
后一种格式中,onterbackward事件作为onevent元素的一给类型值,并结合标签指定事件激活时浏览器需要打开的卡片的URL地址。
3.3.5 onpick事件
onpick事件在定义时一般通过onpick属性指定一些项目,当用户选择或取消这些项目时,即可触发onpick事件,执行onpick属性所指定的项目,如打开卡片、卡片组或其他事件等。onpick事件通常在option元素的标签中进行定义,其语法格式如下:
1)align。该属性用于设置段落在浏览器中的对齐方式,有left、center和righ三种取值。这三种参数值分别表示p元素当前定义的文本段落及浏览器窗口的左侧、中间和右侧进行对齐。默认值为left,及段落与浏览器窗口的左侧对齐排列。
2)mode。该属性用于指定下一段落的换行方式。
3.7.4 td元素
td元素用于规定表格单元格的内容。其语法格式如下:
单元格内容 |
3.7.5 tr元素
WML中的表格是按照行、列进行组织的。一个表格由若干行组成,每行由若干列组成。tr元素用于定义表格的行。其语法格式如下:
单元格内容
3.7.6 table元素
table元素与tr元素、td元素一起,可用来创建能容纳文本和图像的表格,并可设置表格各列中文本和图像的对齐方式。其语法格式如下:
或
其中各个属性的功能和用法介绍如下:
1)align。该属性用于指定表各个列中文本和图像的对齐方式。
2)title。该属性用于指定table元素的标题。
3)columns.该属性用于指定表格的列数,该数不能为0
关联文档