在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
事件
WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用<do>标签来处理,另一类是相关页面内部的事件,用<onevent>标签来处理。 <do>的语法如下:<do type="type" label="label" name="name" optional="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 --------------- <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0"/> </head> <card id="card0" ordered="false"> <do type="accept" label="InputName" name="do1"> <go href="#card01"/> </do> <p> NAME:<input name="userName" title="User Name" type="text" format="*M" emptyok="false" maxlength="12"/> </p> </card> <card id="card01"> <p> You name is $(userName:noesc). </p> </card> </wml> <onevent>的语法如下,<onevent type="type">任务</onevent>,必选属性type的取值如下: type值 如果用户执行了以下操作就执行任务 onpick 用户选择或不选一个<option>项时。 onenterforward 用户使用<go>任务到达一个CARD时。 onenterbackward 用户使用<prev>任务返回到前面的CARD时,或者按BACK按钮时。 ontimer 当<timer>过期时。 test7.wml --------------- <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0"/> </head> <card id="card0" ordered="false"> <p> Please select a city... <select title="Cities List" name="city"> <option title="Beijing" value="Beijing"> <onevent type="onpick"> <go href="#card01"/> </onevent>Beijing</option> <option title="Shanghai" value="Shanghai" onpick="#card01">Shanghai</option> <option title="Hongkong" value="Hongkong" onpick="#card01">Hongkong</option> </select> & lt;/p> </card> <card id="card01"> <p> You are Living in $(city:noesc) </p> </card> </wml> <timer/>可以用来在用户不进行任何操作的一段时间后,自动执行一个任务,任何激活CARD页面的任务和用户操作都会启动<timer/>,而任务进行时,<timer/>就停止。每个CARD只能有一个<timer/>,一个<timer/>只能触发一个任务。语法如下:<timer name="variable" value="value"/>,其中name为可选属性,指定为一个变量名,当退出该CARD时,该变量存储此时定时器的值,当定时器超时时,手机将该变量设为0;value为必选属性,用来设置定时器的定时值,最小单位为0.1秒。 test8.wml --------------- <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0"/> </head> <card id="card1" ontimer="#card2"> <timer name="time1" value="50"/> <p align="center"> After 5s, goto card2 </p> </card> <card id="card2"> <onevent type="ontimer"> <go href="#card1"/> </onevent> <timer name="time2" value="50"/> <p align="center"> Here is card2! </p> </card> </wml> 再提一下,<onevent> <timer> <do>三者必须按以上顺序写。 此外在DECK级还可以加入<template>,用来将事件捆绑在DECK级上,语法如下: <template onenterforward="url" onenterbackward="url" ontimer="url"> <do>或者<onevent> </template> test9.wml --------------- <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0"/> </head> <template> <do type="accept" label="deckPress" name="do1"> <go href="#card01"/> </do> </template> <card id="card0" ordered="false"> <do type="accept" label="cardPress" name="do1"> <go href="#card02"/> </do> <p> Press ACCEPT... </p> </card> <card id="card01"> <p> Here is card01 </p> </card> <card id="card02"> <p> Here is card02 </p> </card> </wml> |
请发表评论