事件
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