錨和任務(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入門文章)的標(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"。
<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ō)明)
新聞熱點(diǎn)
疑難解答
圖片精選