posts - 22,comments - 35,trackbacks - 0
          這里介紹WAP協(xié)議標(biāo)準(zhǔn)組織所制定的標(biāo)記語(yǔ)言WML,由于和以前介紹的HDML在手機(jī)瀏覽器專用網(wǎng)頁(yè)的特征上基本一致,所以概念部分就略去了,直接講述語(yǔ)言。

          1.基本規(guī)則*

          WML使用XML文檔字符集,目前支持Unicode 2.0,和HDML不同,WML的所有標(biāo)簽,屬性和規(guī)定的可接收值必須小寫(xiě),CARD的名字和變量也是區(qū)分大小寫(xiě)的。和HDML一樣,對(duì)于連續(xù)的空字符,只顯示一個(gè)空格。標(biāo)簽內(nèi)屬性的值必須用"或者’括起來(lái),屬性名,=和值之間不能有空格。對(duì)于不成對(duì)出現(xiàn)的標(biāo)簽,必須在>前加/,比如<br/>。

          在對(duì)變量的引用上和HDML基本相同,有:$(var1:esc)$(var1:noesc)$(var1:unesc)三種形式,具體含義參見(jiàn)前面HDML的相關(guān)部分。在對(duì)保留字符的處理上也基本相同,對(duì)應(yīng)的取代字符有:< <> >?’ &apos;" "& &$ $$空格 - -這里要指出的是在URL的傳遞過(guò)程中,用來(lái)連接參數(shù)的&必須轉(zhuǎn)化為&。

          2.基本格式和文件頭

          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> <access/> <meta..../> </head> <card>Some contents... </card><wml>Some contents...

          結(jié)構(gòu)看上去和HTMl文件很類似,對(duì)于每一個(gè)DECK,在其文檔開(kāi)頭必須指明以下的類型聲明。

          千萬(wàn)注意字母的大小寫(xiě)。對(duì)于一個(gè)DECK,其文件大小最好不要超過(guò)1.2K。

          標(biāo)簽和HTML中的標(biāo)簽一樣,用來(lái)表明這是一個(gè)WML的DECK,它有一個(gè)可選的xml:lang屬性來(lái)制定文檔的語(yǔ)言,比如表示文檔語(yǔ)言為中文。

          和HTML一樣,標(biāo)簽包含了該DESK的相關(guān)信息。標(biāo)簽之間可以包含一個(gè)標(biāo)簽和多個(gè)標(biāo)簽。

          相當(dāng)于HTML中的標(biāo)簽,指定該DECK的訪問(wèn)控制信息,它用兩個(gè)可選的屬性,domain用來(lái)指定域,默認(rèn)值為當(dāng)前域,path用來(lái)指定路徑,默認(rèn)值為"/",即根目錄。由于單獨(dú)使用,所以要用/結(jié)尾,以后對(duì)于類似的情況不再贅述。

          和HTML中的類似,提供了該DECK的meta信息。屬性是必選的,包括一下三種情況name="name" UP.Link Server忽略meta數(shù)據(jù)http-equiv="name" UP.Link Server將meta數(shù)據(jù)轉(zhuǎn)為HTTP響應(yīng)頭(同HTML)user-agent="agent" UP.Link Server直接將meta數(shù)據(jù)傳給手機(jī)設(shè)備content屬性也是必選的,其內(nèi)容根據(jù)屬性而定。scheme屬性目前尚不支持。forua為可選屬性,指定在該wml文件傳到客戶端之前,標(biāo)簽是不是被中間代理刪除(因?yàn)閭鬏數(shù)膮f(xié)議可能改變),默認(rèn)值為false。

          目前支持的meta數(shù)據(jù):指定DECK在手機(jī)內(nèi)存緩存中的存儲(chǔ)時(shí)間段,默認(rèn)的為30天(除非內(nèi)存耗盡),在該期間,手機(jī)對(duì)于訪問(wèn)過(guò)的DECK直接從緩存里調(diào)用。如果信息是對(duì)時(shí)間敏感的,可以用max-age指定DECK在緩存里的生存期,最小單位是秒,如果指定為0,則每次都需通過(guò)連接服務(wù)器來(lái)調(diào)用該DECK。

          類似于普通瀏覽器的書(shū)簽功能。當(dāng)用戶將一個(gè)CARD做了書(shū)簽后,手機(jī)瀏覽器首先用一個(gè)標(biāo)記記錄該CARD,這個(gè)標(biāo)記默認(rèn)的是標(biāo)簽中的title屬性(以后會(huì)講到),然后當(dāng)用戶選擇了該書(shū)簽以后,瀏覽器就會(huì)打開(kāi)被記錄的URL。但是因?yàn)樵谀J(rèn)的情況下,手機(jī)會(huì)記錄所有的DECK,所以,一般被用來(lái)使手機(jī)不要記錄當(dāng)前的URL,即不用title屬性。此外,如果要為書(shū)簽指定不同于當(dāng)前DRECk的URL,則需用title屬性。

          一個(gè)DECK可以包含多個(gè)CARD,每個(gè)CARD的內(nèi)容可能不止一屏顯示,注意DECK,CARD和屏幕顯示范圍的關(guān)系。一個(gè)CARD可以包含以下可選的屬性:*id屬性用來(lái)指定CARD的名字,可用來(lái)在CARD間跳轉(zhuǎn),相當(dāng)于在HTML中在頁(yè)內(nèi)跳轉(zhuǎn)時(shí)用。

          *title屬性用來(lái)作為書(shū)簽的標(biāo)記,該屬性一般不會(huì)顯示在屏幕上。

          *newcontext屬性,默認(rèn)值為false,用來(lái)指示當(dāng)跳轉(zhuǎn)到本CARD時(shí),手機(jī)是不是要清除以前保留的信息,包括變量,堆棧里的歷史記錄,重新設(shè)置手機(jī)狀態(tài)等。

          *ordered屬性,默認(rèn)值是true,表明該CARD里的內(nèi)容是按固定的順序顯示,還是按用戶的選擇來(lái)顯示。這點(diǎn)和HTMl不同,CARD頁(yè)面里的內(nèi)容可以按一定的順序顯示,默認(rèn)的是按線性順序顯示,即按代碼的順序,但是,要注意的是,以下三個(gè)標(biāo)簽必須按以下順序來(lái)寫(xiě),(這和以后要講的“事件”有關(guān))。這樣做是為了方便填表單,當(dāng)ordered設(shè)置為true時(shí),如果一個(gè)表單的內(nèi)容不能在一屏里顯示完,就分成多屏顯示;當(dāng)ordered設(shè)置為false時(shí),手機(jī)可以顯示一個(gè)概要CARD來(lái)總結(jié)有效的選項(xiàng),用戶可以從中選取表單選項(xiàng)來(lái)填寫(xiě)。

          *onXXX屬性,類似于HTML標(biāo)簽中的onXXX屬性,用來(lái)捕捉事件,當(dāng)事件被觸發(fā)時(shí)執(zhí)行指定的操作(任務(wù)),在這里是轉(zhuǎn)向某個(gè)URL。

          3.顯示文本

          在文本的顯示上WML基本和HTML相同。文字段落包含在<p align= "alignment" mode=" wrapmode">和</p>之間,align屬性指定該段文字的對(duì)齊方式,默認(rèn)的是left,其他可選擇right和center;mode屬性指定當(dāng)一行顯示不下所有的文字時(shí)是否自動(dòng)換行,默認(rèn)的是自動(dòng)換行wrap,如果選nowrap,則在一行中顯示,瀏覽器會(huì)通過(guò)類似于水平滾動(dòng)條的機(jī)制來(lái)顯示所有文字。換行標(biāo)簽也一樣為<br/>,這里先替一下,在標(biāo)單中如果有多個(gè)<input>或者<select>,其間不要用<br/>,否則會(huì)使手機(jī)瀏覽器認(rèn)為是斷點(diǎn)而把表單分頁(yè)顯示。

          文字的修飾標(biāo)簽有<b>、<i>、<u>、<em>、<strong>、<big>和<small>,意義和HTML里的相同。

          表格的顯示標(biāo)簽也和HTML相近,使用<table title="name" align="left|right|center" columns="列數(shù)">、<tr>和<td>來(lái)顯示,<table>的title屬性用來(lái)給表格命名,columns屬性指定表的列數(shù),不能為0,可選的align屬性和前面提到的一樣是對(duì)齊方式。表格中可以包含文字和圖片。

          test1.wml--------------<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card><p align="center"><i>Hello</i><br/><b><i>World!</i></b><table title="mytable" align="right" columns="2"><tr><td>1-1</td><td>1-2</td></tr><tr><td>2-1</td><td>2-2</td></tr></table></p></card></wml>

          4.顯示圖片

          顯示圖片(1位黑白BMP圖片)的標(biāo)簽一樣類似于HTML,<img alt="text" src="url" localsrc="icon" align="left" height="n" width="n" vspace="n" hspace="n"/>,屬性中alt和src是必須要有的,其他可選。另外要注意的是<img>要放在<p>里,不能放在<do>和<option>等功能健標(biāo)簽和選單標(biāo)簽里。

          *alt屬性用來(lái)指定當(dāng)手機(jī)不支持圖片顯示時(shí)用來(lái)顯示的文字。

          *src屬性指定圖片的URL,但當(dāng)有了以下的localsrc屬性時(shí),手機(jī)瀏覽器就忽略src屬性。

          *localsrc屬性用來(lái)指定顯示存在手機(jī)ROM中的圖標(biāo),如果找不到,則到UP.Link Server上去找。

          *可選的align屬性用來(lái)表明圖片同當(dāng)前行文本的對(duì)齊方式,默認(rèn)值為bottom,可選to和middle。

          *height、width、vspace、hspace屬性分別指定圖片的長(zhǎng)寬和距環(huán)繞文字的間距,目前不是所有的WAP手機(jī)都支持這些屬性。

          test2.wml---------------<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card><p align="center"><img alt=":)" src="xxx.bmp" localsrc="smileyface"/></p></card></wml>

          5.錨和任務(wù)

          連接是HTML頁(yè)面里最基本的功能,在WML里也一樣用<a href="url" title="label">和</a>來(lái)包括用來(lái)建立連接的文字,必選屬性href指定了要打開(kāi)的URL,可選的title屬性給該連接取個(gè)標(biāo)記名字,這個(gè)名字將作為軟按鈕之一的ACCEPT鍵(詳見(jiàn)以前的HDML入門(mén)文章)的標(biāo)記顯示在屏幕的軟按鈕區(qū),所以通常可以將屬性作為提示文字使用。

          然而,以上的連接在WML里只是任務(wù)的一種情況,為了能夠使用其它任務(wù),所以引進(jìn)了新的標(biāo)簽<anchor title="label">任務(wù)標(biāo)簽文本</anchor>,<a>其實(shí)是當(dāng)任務(wù)標(biāo)簽為<go/>時(shí)的簡(jiǎn)單表示方式。

          test3.wml---------------<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

          "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><card><p><anchor title="Link1"><go href="test1.wml"/>News</anchor><br/><a title="Link2" href="test2.wml">Sports</a></p></card></wml>WML里的任務(wù)標(biāo)簽有以下幾種,除了用于<anchor>,還可以用在事件中:1)<go>用來(lái)指示瀏覽器顯示指定的URL,包括DECK的第一個(gè)CARD或者指定的CARD。語(yǔ)法如下:<go href="url" sendreferer="false|true" method="get|post" accept-charset="charset"><postfield name="name" value="value"/><setvar name="name" value="value"/></go>其中href屬性為必選,其他為可選。

          sendreferer屬性表示是否傳遞調(diào)用href所指定的URL的頁(yè)面的URL,也就是當(dāng)前頁(yè)的URL,即HTTP頭中的HTTP_REFERER,默認(rèn)值為false,可選值為true。method和HTML中的表單FORM的method屬性一樣,指定表單是以get的方式還是post的方式遞交,以便cgi處理,默認(rèn)的值為get,但如果未指定method但<go></go>間存在<postfield>,手機(jī)自動(dòng)以post方式傳遞。accept-charset屬性可覆蓋在HTTP頭里指定的字符集,可以寫(xiě)多個(gè)字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"。

          1)<postfield name="name" value="value"/>可以看作是HTML表單FORM中的<INPUT TYPE="HIDDEN" NAME="變量名" VALUE="值">,通過(guò)它可以向指定的URL傳遞以“變量名/值”形式的數(shù)據(jù)。name和value屬性都是必選的。注意只有這里的變量是用來(lái)遞交給CGI程序的。

          除了<postfield>,還可以在<go>和</go>間加入一句或者多句<setvar name="name" value="value"/>,該語(yǔ)句的意思是,當(dāng)觸發(fā)某一事件時(shí),給變量賦值。

          要注意的是,當(dāng)<go>和</go>之間沒(méi)有任何語(yǔ)句時(shí),要用<go/>的形式,這點(diǎn)比較特別,比如<anchor title="Link1"><go href="test.wml"/>News</anchor>。

          2)<prev>用來(lái)將當(dāng)前頁(yè)面的URL壓入U(xiǎn)RL歷史堆棧,并打開(kāi)此前的URL,若該URL不存在,則<prev>無(wú)效。語(yǔ)法類似<go>:<prev><setvar name="name" value="value"/></prev>,<prev>和</prev>之間可加入一句或多句<setvar name="name" value="value"/>,若不加,則必須變成<prev/>的形式。

          3)<refresh>用來(lái)刷新當(dāng)前的頁(yè)面,從而使得頁(yè)面內(nèi)的變量刷新,語(yǔ)法為<refresh><setvar name="name" value="value"/></refresh>。

          4)<noop>,表示什么也不做,該標(biāo)簽不能用在<anchor>中,一般用在覆蓋DECK級(jí)的<do>(后面會(huì)有說(shuō)明)。

          6.顯示表單

          類似于HTML的<FORM>,<fieldset>可用來(lái)包括一組表單選項(xiàng),但不是必須的。前面說(shuō)過(guò),當(dāng)<card>的ordered設(shè)置為false時(shí),手機(jī)可以顯示一個(gè)概要CARD來(lái)總結(jié)有效的選項(xiàng),方便用戶從中選取表單選項(xiàng)來(lái)填寫(xiě),概要CARD就是根據(jù)<fieldset>和獨(dú)立的輸入框<input>以及選單<select>來(lái)總結(jié)的。語(yǔ)法為,<fieldset title="label">表單內(nèi)容</fieldset>,可選的title屬性除了可用來(lái)表示表單的名字外,還在概要CARD里作為選擇項(xiàng)的標(biāo)題。表單內(nèi)容可以是嵌套的<fieldset>,輸入框<input>,選單<select>和必要的提示文本。

          <input name="variable" title="label" type="type" value="value" default="default" format="specifier" emptyok="false|true" size="n" maxlength="n" tabindex="n"/>,用來(lái)輸入文本,除了name屬性是必要的,其他可選。

          *name屬性,指定了用來(lái)存儲(chǔ)該輸入文本的變量名字。

          *title屬性,該輸入框的名字,同樣可被用來(lái)作為概要CARD頁(yè)中的選項(xiàng)名。

          *type屬性,默認(rèn)值為text,如選擇password,則輸入的數(shù)據(jù)顯示為*。

          *value屬性,在語(yǔ)法和行為上等同于下面的default屬性,*default屬性,指定輸入框的默認(rèn)值,即name屬性指定變量的默認(rèn)值,當(dāng)用戶輸入新值時(shí),該值無(wú)效,如果該值不符合以下format屬性的規(guī)定,則手機(jī)也忽略該默認(rèn)值。

          *format屬性,用來(lái)格式化輸入的數(shù)據(jù),可用的標(biāo)記如下,使用時(shí)可用“一位數(shù)字標(biāo)記”和“*標(biāo)記”的形式,前者代表N個(gè)標(biāo)記型字符,如3X,后者代表任意個(gè)(小于maxlength屬性的值)標(biāo)記型字符。

          <optgroup>可用來(lái)將多個(gè)<option>分組,<optgroup>和</optgroup>間還可包括<optgroup>和<option>,該標(biāo)簽?zāi)壳吧形幢恢С帧?/p>

          <option>,類似于HTML中選單的<OPTION>,用來(lái)表示選單的可選項(xiàng)。<option>和</option>間可包括事件(見(jiàn)下節(jié))和選單的顯示文本。<option>的屬性為可選,其中value屬性用來(lái)提供值,當(dāng)選到該項(xiàng)后,將該值賦給<select>的name屬性所指定的變量。onpick屬性,用來(lái)指定用戶選到該項(xiàng)并按ACCEPT鍵后所打開(kāi)頁(yè)面的URL。

          test5.wml---------------<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

          <wml><card id="card0" ordered="false"><p>Please select a city...<select title="Cities List" name="city"><option title="Beijing" value="c1">Beijing</option><option title="Shanghai" value="c2">Shanghai</option><option title="Hongkong" value="c3">Hongkong</option></select>Please select columns...<select title="Column List" multiple="true" name="col"><option title="Hot News" value="l1">News</option><option title="Cool Sports" value="l2">Sports</option><option title="Pop Enter,,," value="l3">Entertainment</option></select></p></card></wml>

          7.事件

          WML的事件基本上分為兩大類,一類是鍵盤(pán)(包括軟硬按鈕)輸入事件,用<do>標(biāo)簽來(lái)處理,另一類是相關(guān)頁(yè)面內(nèi)部的事件,用<onevent>標(biāo)簽來(lái)處理。

          <do>的語(yǔ)法如下:<do type="type" label="label" name="name" optional="false|true">任務(wù)</do>,任務(wù)就是以前提到的四種任務(wù)。<do>的屬性中,type是必選的,其他為可選。

          *label屬性,指定了軟按鈕在屏幕上的顯示文本。目前type屬性為delete,help,prev時(shí)該屬性無(wú)效。

          *name屬性,為<do>取個(gè)名字,同一的CARD里的<do>不能重名。如果CARD級(jí)的<do>和DECK級(jí)的<do>同名,則覆蓋DECK級(jí)的<do>。

          *optional屬性,指定手機(jī)是不是可以忽略這個(gè)事件,默認(rèn)值是false。

          *type屬性,指定觸發(fā)的事件,具體如下;type值觸發(fā)原因accept調(diào)用ACCEPT按鈕機(jī)制delete調(diào)用DELETE按鈕機(jī)制help調(diào)用HELP按鈕機(jī)制options調(diào)用選擇按鈕機(jī)制prev調(diào)用PREV按鈕機(jī)制reset調(diào)用清除和重新設(shè)定手機(jī)狀態(tài)時(shí)的RESET機(jī)制(目前不支持)unknown調(diào)用unknown機(jī)制,等于type=""(目前不支持)vnd. co-type調(diào)用廠商特定的機(jī)制(目前不支持)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>的語(yǔ)法如下,<onevent type="type">任務(wù)</onevent>,必選屬性type的取值如下:type值如果用戶執(zhí)行了以下操作就執(zhí)行任務(wù)onpick用戶選擇或不選一個(gè)<option>項(xiàng)時(shí)。

          標(biāo)記描述A任何符號(hào)或者大寫(xiě)字母(不包括數(shù)字)a任何符號(hào)或者小寫(xiě)字母(不包括數(shù)字)N任何數(shù)字(不包括符號(hào)或者字母)X任何符號(hào)、數(shù)字或者大寫(xiě)字母(不可改變?yōu)樾?xiě)字母)x任何符號(hào)、數(shù)字或者小寫(xiě)字母(不可改變?yōu)榇髮?xiě)字母)M任何符號(hào)、數(shù)字或者大寫(xiě)字母(可改變?yōu)樾?xiě)字母)或者多個(gè)字符,默認(rèn)為首字大寫(xiě)m任何符號(hào)、數(shù)字或者小寫(xiě)字母(可改變?yōu)榇髮?xiě)字母)或者多個(gè)字符,默認(rèn)為首字小寫(xiě)*maxlength屬性,指定了用戶可輸入的最大字符長(zhǎng)度,最大限制為256個(gè)字符。

          *emptyok屬性,表示用戶可否不填輸入框,默認(rèn)為false,即要填。

          *size屬性,輸入框顯示長(zhǎng)度,目前未被支持。

          *tabindex屬性,類似于在HTML表單中按TAB鍵后,焦點(diǎn)落在哪個(gè)選項(xiàng)上,該值決定了這個(gè)選擇順序,數(shù)字大的排在后面。目前未被支持。

          test4.wml---------------<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

          <wml><card id="card1" ordered="false"><p>USERNAME:<input name="userName" title="User Name" type="text" value="YourNameHere" format="*M" emptyok="false" maxlength="12" tabindex="1"/>PASSWORD:<input name="password" title="Password" type="password" format="8x" emptyok="false" maxlength="8" tabindex="2"/>COMMENTS:<input name="comments" title="comment" type="text" value="YourCommentsHere" format="*M" emptyok="true" maxlength="30" tabindex="3"/></p></card></wml>將上例<card>中的odered的值改為"true"試試看,然后再在<p>和</p>內(nèi)加入<fieldset title="field1">和</fieldset>試試看。

          <select>選單類似于HTML表單中的<SELECT>,<select>和</select>間可包含<optgroup>和<option>標(biāo)簽,語(yǔ)法如下,所有屬性都為可選:<select title="label" multiple="false|true" name="variable" default="default" iname="index_var" ivalue="default" tabindex=" n"><optgroup title="label">選單內(nèi)容</optgroup><option title="label" value="value" onpick="url">事件或者文本</option></select>*title屬性,如以上<input>的title屬性。

          *multiple屬性,指定用戶可否進(jìn)行多項(xiàng)選擇,默認(rèn)值為false。

          *name屬性,用來(lái)存儲(chǔ)用戶選擇項(xiàng)的變量名,其值為<option>標(biāo)簽的value屬性,若用戶沒(méi)有選擇又沒(méi)有用default屬性指定默認(rèn)值,則手機(jī)將改變量賦值為空字符串"",對(duì)于多項(xiàng)選擇,每個(gè)值用“;”分開(kāi)。

          *default屬性,可為name屬性指定的變量賦默認(rèn)值。

          *iname屬性,用來(lái)記錄用戶選擇項(xiàng)的位置,相應(yīng)的值從1開(kāi)始。若沒(méi)選,則該值為0。

          *ivalue屬性,用來(lái)記錄默認(rèn)值所在的位置。

          onenterforward用戶使用<go>任務(wù)到達(dá)一個(gè)CARD時(shí)。

          onenterbackward用戶使用<prev>任務(wù)返回到前面的CARD時(shí),或者按BACK按鈕時(shí)。

          ontimer當(dāng)<timer>過(guò)期時(shí)。

          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></p></card><card id="card01"><p>You are Living in $(city:noesc)</p></card></wml><timer/>可以用來(lái)在用戶不進(jìn)行任何操作的一段時(shí)間后,自動(dòng)執(zhí)行一個(gè)任務(wù),任何激活CARD頁(yè)面的任務(wù)和用戶操作都會(huì)啟動(dòng)<timer/>,而任務(wù)進(jìn)行時(shí),<timer/>就停止。每個(gè)CARD只能有一個(gè)<timer/>,一個(gè)<timer/>只能觸發(fā)一個(gè)任務(wù)。語(yǔ)法如下:<timer name="variable" value="value"/>,其中name為可選屬性,指定為一個(gè)變量名,當(dāng)退出該CARD時(shí),該變量存儲(chǔ)此時(shí)定時(shí)器的值,當(dāng)定時(shí)器超時(shí)時(shí),手機(jī)將該變量設(shè)為0;value為必選屬性,用來(lái)設(shè)置定時(shí)器的定時(shí)值,最小單位為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>三者必須按以上順序?qū)憽?/p>

          此外在DECK級(jí)還可以加入<template>,用來(lái)將事件捆綁在DECK級(jí)上,語(yǔ)法如下:<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>

          onenterforward用戶使用<go>任務(wù)到達(dá)一個(gè)CARD時(shí)。

          onenterbackward用戶使用<prev>任務(wù)返回到前面的CARD時(shí),或者按BACK按鈕時(shí)。

          ontimer當(dāng)<timer>過(guò)期時(shí)。

          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></p></card><card id="card01"><p>You are Living in $(city:noesc)</p></card></wml><timer/>可以用來(lái)在用戶不進(jìn)行任何操作的一段時(shí)間后,自動(dòng)執(zhí)行一個(gè)任務(wù),任何激活CARD頁(yè)面的任務(wù)和用戶操作都會(huì)啟動(dòng)<timer/>,而任務(wù)進(jìn)行時(shí),<timer/>就停止。每個(gè)CARD只能有一個(gè)<timer/>,一個(gè)<timer/>只能觸發(fā)一個(gè)任務(wù)。語(yǔ)法如下:<timer name="variable" value="value"/>,其中name為可選屬性,指定為一個(gè)變量名,當(dāng)退出該CARD時(shí),該變量存儲(chǔ)此時(shí)定時(shí)器的值,當(dāng)定時(shí)器超時(shí)時(shí),手機(jī)將該變量設(shè)為0;value為必選屬性,用來(lái)設(shè)置定時(shí)器的定時(shí)值,最小單位為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>三者必須按以上順序?qū)憽?/p>

          此外在DECK級(jí)還可以加入<template>,用來(lái)將事件捆綁在DECK級(jí)上,語(yǔ)法如下:<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>

          posted on 2006-03-17 11:51 kelven 閱讀(883) 評(píng)論(0)  編輯  收藏 所屬分類: WML
          主站蜘蛛池模板: 资溪县| 公安县| SHOW| 巨野县| 石棉县| 蕉岭县| 汉寿县| 衡阳县| 焉耆| 陈巴尔虎旗| 社旗县| 内乡县| 行唐县| 叙永县| 嫩江县| 青龙| 伊川县| 阿瓦提县| 龙口市| 丰镇市| 沙坪坝区| 余江县| 广宁县| 新平| 赣榆县| 个旧市| 吴旗县| 桦甸市| 靖江市| 临沭县| 中方县| 会东县| 泸州市| 沾益县| 隆尧县| 乌鲁木齐县| 大余县| 玉山县| 芜湖县| 临安市| 峨山|