事件
WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用do标签来处理,另一类是相关页面内部的事件,用onevent标签来处理。
do的语法如下:dotype=typelabel=labelname=nameoptional=false|true任务/do,任务就是以前提到的四种任务。do的属性中,type是必选的,其他为可选。
*label属性,指定了软按钮在屏幕上的显示文本。目前type属性为delete,help,prev时该属性无效。
*name属性,为do取个名字,同一的CARD里的do不能重名。如果CARD级的do和DECK级的do同名,则覆盖DECK级的do。
*optional属性,指定手机是不是可以忽略这个事件,默认值是false。
*type属性,指定触发的事件,具体如下;
type值 触发原因
accept 调用ACCEPT按钮机制
delete 调用DELETE按钮机制
help 调用HELP按钮机制
options 调用选择按钮机制
prev 调用PREV按钮机制
reset 调用清除和重新设定手机状态时的RESET机制(目前不支持)
unknown 调用unknown机制,等于type=(目前不支持)
vnd.co-type调用厂商特定的机制(目前不支持)
X-*,x-* 供以后使用(不保留)(目前不支持)
test6.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card0ordered=false
dotype=acceptlabel=InputNamename=do1
gohref=#card01/
/do
p
NAME:inputname=userNametitle=UserNametype=textformat=*Memptyok=falsemaxlength=12/
/p
/card
cardid=card01
p
Younameis$(userName:noesc).
/p
/card
/wml
onevent的语法如下,oneventtype=type任务/onevent,必选属性type的取值如下:
type值 如果用户执行了以下操作就执行任务
onpick 用户选择或不选一个option项时。
onenterforward 用户使用go任务到达一个CARD时。
onenterbackward用户使用prev任务返回到前面的CARD时,或者按BACK按钮时。
ontimer 当timer过期时。
test7.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card0ordered=false
p
Pleaseselectacity...
selecttitle=CitiesListname=city
optiontitle=Beijingvalue=Beijing
oneventtype=onpick
gohref=#card01/
/oneventBeijing/option
optiontitle=Shanghaivalue=Shanghaionpick=#card01Shanghai/option
optiontitle=Hongkongvalue=Hongkongonpick=#card01Hongkong/option
/select
lt;/p
/card
cardid=card01
p
YouareLivingin$(city:noesc)
/p
/card
/wml
timer/可以用来在用户不进行任何操作的一段时间后,自动执行一个任务,任何激活CARD页面的任务和用户操作都会启动timer/,而任务进行时,timer/就停止。每个CARD只能有一个timer/,一个timer/只能触发一个任务。语法如下:timername=variablevalue=value/,其中name为可选属性,指定为一个变量名,当退出该CARD时,该变量存储此时定时器的值,当定时器超时时,手机将该变量设为0;value为必选属性,用来设置定时器的定时值,最小单位为0.1秒。
test8.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card1ontimer=#card2
timername=time1value=50/
palign=center
After5s,gotocard2
/p
/card
cardid=card2
oneventtype=ontimer
gohref=#card1/
/onevent
timername=time2value=50/
palign=center
Hereiscard2!
/p
/card
/wml
再提一下,onevent timer do三者必须按以上顺序写。
此外在DECK级还可以加入template,用来将事件捆绑在DECK级上,语法如下:
templateonenterforward=urlonenterbackward=urlontimer=url
do或者onevent
/template
test9.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
template
dotype=acceptlabel=deckPressname=do1
gohref=#card01/
/do
/template
cardid=card0ordered=false
dotype=acceptlabel=cardPressname=do1
gohref=#card02/
/do
p
PressACCEPT...
/p
/card
cardid=card01
p
Hereiscard01
/p
/card
cardid=card02
p
Hereiscard02
/p
/card
/wml
WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用do标签来处理,另一类是相关页面内部的事件,用onevent标签来处理。
do的语法如下:dotype=typelabel=labelname=nameoptional=false|true任务/do,任务就是以前提到的四种任务。do的属性中,type是必选的,其他为可选。
*label属性,指定了软按钮在屏幕上的显示文本。目前type属性为delete,help,prev时该属性无效。
*name属性,为do取个名字,同一的CARD里的do不能重名。如果CARD级的do和DECK级的do同名,则覆盖DECK级的do。
*optional属性,指定手机是不是可以忽略这个事件,默认值是false。
*type属性,指定触发的事件,具体如下;
type值 触发原因
accept 调用ACCEPT按钮机制
delete 调用DELETE按钮机制
help 调用HELP按钮机制
options 调用选择按钮机制
prev 调用PREV按钮机制
reset 调用清除和重新设定手机状态时的RESET机制(目前不支持)
unknown 调用unknown机制,等于type=(目前不支持)
vnd.co-type调用厂商特定的机制(目前不支持)
X-*,x-* 供以后使用(不保留)(目前不支持)
test6.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card0ordered=false
dotype=acceptlabel=InputNamename=do1
gohref=#card01/
/do
p
NAME:inputname=userNametitle=UserNametype=textformat=*Memptyok=falsemaxlength=12/
/p
/card
cardid=card01
p
Younameis$(userName:noesc).
/p
/card
/wml
onevent的语法如下,oneventtype=type任务/onevent,必选属性type的取值如下:
type值 如果用户执行了以下操作就执行任务
onpick 用户选择或不选一个option项时。
onenterforward 用户使用go任务到达一个CARD时。
onenterbackward用户使用prev任务返回到前面的CARD时,或者按BACK按钮时。
ontimer 当timer过期时。
test7.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card0ordered=false
p
Pleaseselectacity...
selecttitle=CitiesListname=city
optiontitle=Beijingvalue=Beijing
oneventtype=onpick
gohref=#card01/
/oneventBeijing/option
optiontitle=Shanghaivalue=Shanghaionpick=#card01Shanghai/option
optiontitle=Hongkongvalue=Hongkongonpick=#card01Hongkong/option
/select
lt;/p
/card
cardid=card01
p
YouareLivingin$(city:noesc)
/p
/card
/wml
timer/可以用来在用户不进行任何操作的一段时间后,自动执行一个任务,任何激活CARD页面的任务和用户操作都会启动timer/,而任务进行时,timer/就停止。每个CARD只能有一个timer/,一个timer/只能触发一个任务。语法如下:timername=variablevalue=value/,其中name为可选属性,指定为一个变量名,当退出该CARD时,该变量存储此时定时器的值,当定时器超时时,手机将该变量设为0;value为必选属性,用来设置定时器的定时值,最小单位为0.1秒。
test8.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
cardid=card1ontimer=#card2
timername=time1value=50/
palign=center
After5s,gotocard2
/p
/card
cardid=card2
oneventtype=ontimer
gohref=#card1/
/onevent
timername=time2value=50/
palign=center
Hereiscard2!
/p
/card
/wml
再提一下,onevent timer do三者必须按以上顺序写。
此外在DECK级还可以加入template,用来将事件捆绑在DECK级上,语法如下:
templateonenterforward=urlonenterbackward=urlontimer=url
do或者onevent
/template
test9.wml
---------------
?xmlversion=1.0?
!DOCTYPEwmlPUBLIC-//WAPFORUM//DTDWML1.1//ENhttp://www.*wa**pforum.org/DTD/wml_1.1.xml
wml
head
metahttp-equiv=Cache-Controlcontent=max-age=0/
/head
template
dotype=acceptlabel=deckPressname=do1
gohref=#card01/
/do
/template
cardid=card0ordered=false
dotype=acceptlabel=cardPressname=do1
gohref=#card02/
/do
p
PressACCEPT...
/p
/card
cardid=card01
p
Hereiscard01
/p
/card
cardid=card02
p
Hereiscard02
/p
/card
/wml