欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WML語法大全與相關介紹第2/3頁

 更新時間:2007年03月14日 00:00:00   作者:  

目前支持的meta數(shù)據(jù):
<meta http-equiv="Cache-Control" content="max-age=3600"/> 
指定頁面在手機內存緩存中的存儲時間段,默認的為30天(除非內存耗盡)。在此期間,手機對于訪問過的頁面直接從緩存里調用。如果信息是對時間敏感的,可以用max-age指定頁面在緩存里的生存期,最小單位是秒。如果指定為0,則每次都需通過連接服務器來調用該頁面
<meta user-agent="vnd.up.markable" content="false"/>
<meta user-agent="vnd.up.bookmark" content="指定的URL"/> 
類似于普通瀏覽器的書簽功能。當用戶將一個卡片做了書簽后,手機瀏覽器首先用一個標記記錄該卡片。這個標記默認的是<card>標簽中的title屬性(以后會講到)。然后當用戶選擇了該書簽以后,瀏覽器就會打開被記錄的URL。但是因為在默認的情況下,手機會記錄所有的頁面。所以,一般<meta>被用來使手機不要記錄當前的URL,即<meta user-agent="vnd.up.markable" content="false"/>。此外,如果要為書簽指定不同于當前頁面的URL,用<meta user-agent="vnd.up.bookmark" content="指定的URL"/>。
一個頁面可以包含多個卡片,每個卡片的內容可能不止一屏顯示,注意頁面、卡片和屏幕顯示范圍的關系。一個卡片用<card>和</card>包含。<card>可以包含以下可選的屬性:
<card id="name" title="label" newcontext="false" ordered="true" onenterforward="url" onenterbackward="url" ontimer="url">
 id屬性用來指定卡片的名字,可用來在卡片間跳轉,相當于在HTML中在頁內跳轉時用<A NAME="jumpHere">。 
 title屬性用來作為書簽的標記,該屬性一般不會顯示在屏幕上。 
 newcontext屬性(默認值為false)用來指示當跳轉到本卡片時,手機是不是要清除以前保留的信息。包括變量、堆棧里的歷史記錄、重新設置手機狀態(tài)等。 
 ordered屬性(默認值是true)表明該卡片里的內容是按固定的順序顯示,還是按用戶的選擇順序來顯示。這點和HTML不同,卡片里的內容可以按一定的順序顯示。默認的是按線性順序顯示,即按代碼的順序。但是,要注意的是,以下三個標簽必須按以下順序來寫:<onevent>、<timer>、<do>(這和以后要講的“事件”有關)。這樣做是為了方便填表單,當ordered設置為true時,如果一個表單的內容不能在一屏里顯示完,就分成多屏顯示;當ordered設置為false時,手機可以顯示一個概要卡片來總結有效的選項,用戶可以從中選取表單選項來填寫。 
 onXXXX屬性,類似于HTML標簽中的onXXXX屬性,用來捕捉事件。當事件被觸發(fā)時執(zhí)行指定的操作(任務),在這里是轉向某個URL。
在文本的顯示上WML基本和HTML相同。文字段落包含在<p align="alignment" mode="wrapmode">和</p>之間。align屬性指定該段文字的對齊方式,默認的是left。其他可選擇right和center;mode屬性指定當一行顯示不下所有的文字時是否自動換行。默認的是自動換行wrap。如果選nowrap,則在一行中顯示,瀏覽器會通過類似于水平滾動條的機制來顯示所有文字。
換行標簽也一樣為<br/>。這里先提一下,在表單中如果有多個<input>或者<select>,其間不要用<br/>,否則會使手機瀏覽器認為是斷點而把表單分頁顯示。
文字的修飾標簽有<b>、<i>、<u>、<em>、<strong>、<big>和<small>,意義和HTML里的相同。
表格的顯示標簽也和HTML相近,使用<table title="name" align="left|right|center" columns="列數(shù)">、<tr>和<td>來顯示。<table>的title屬性用來給表格取個名字,columns屬性指定表的列數(shù),不能為0??蛇x的align屬性和前面提到的一樣是對齊方式。表格中可以包含文字和圖片。
請看下面的例子:
<?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>
            <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>
顯示圖片(1位黑白BMP圖片)的標簽一樣類似于HTML。
<img alt="text" src="url" localsrc="icon" align="left" height="n" width="n" vspace="n" hspace="n"/>
屬性alt和src是必須要有的,其他可選。另外要注意的是<img>要放在<p>里,不能放在<do>和<option>等功能健標簽和選單標簽里。
alt屬性用來指定當手機不支持圖片顯示時用來顯示的文字。 
src屬性指定圖片的URL,但當有了以下的localsrc屬性時,手機瀏覽器就忽略src屬性。 
localsrc屬性用來指定顯示存在手機ROM中的圖標,如果找不到,則到UP.Link Server上去找。 
可選的align屬性用來表明圖片同當前行文本的對齊方式,默認值為bottom,可選to和middle。 
height、width、vspace、hspace屬性分別指定圖片的長寬和距環(huán)繞文字的間距,目前不是所有的WAP手機都支持這些屬性。 
請看下面的例子程序:
<?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>
鏈接是HTML頁面里最基本的功能,在WML里也一樣用<a href="url" title="label">和</a>來包括用來建立鏈接的文字。必選屬性href指定了要打開的URL;可選的title屬性給該鏈接取個標記名字,這個名字將作為軟按鈕之一的ACCEPT鍵的標記顯示在屏幕的軟按鈕區(qū),所以通常可以將屬性作為提示文字使用。
然而,以上的鏈接在WML里只是任務的一種情況。為了能夠使用其他任務,所以引進了新的標簽<anchor title="label">任務標簽文本</anchor>。<a>其實是當任務標簽為<go/>時的簡單表示方式。
<?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里的任務標簽有以下幾種,除了用于<anchor>,還可以用在事件中:
<go> 用來指示瀏覽器顯示指定的URL,包括頁面的第一個卡片或者指定的卡片。語法如下:
<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屬性表示是否傳遞調用href所指定的URL的頁面的URL。也就是當前頁的URL,即HTTP頭中的HTTP_REFERER。默認值為false,可選值為true。
method和HTML中的表單FORM的method屬性一樣,指定表單是以get的方式還是post的方式遞交,以便CGI處理。默認的值為get,但如果未指定method但<go>與</go>間存在<postfield>,手機自動以post方式傳遞。
accept-charset屬性可以覆蓋HTTP頭里指定的字符集??梢詫懚鄠€字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"。
<postfield name="name" value="value"/>可以看作是HTML表單FORM中的<INPUT TYPE="HIDDEN" NAME="變量名" VALUE="值">,通過它可以向指定的URL傳遞以“變量名/值”形式的數(shù)據(jù)。name和value屬性都是必選的。注意只有這里的變量是用來遞交給CGI程序的。
除了<postfield>,還可以在<go>和</go>之間加入一句或者多句<setvar name="name" value="value"/>。該語句的意思是,當觸發(fā)某一事件時,給變量賦值。
要注意的是:當<go>和</go>之間沒有任何語句時,要用<go/>的形式,這點比較特別。比如:<anchor title="Link1"><go href="test.wml"/>News</anchor>。
<prev> 用來將當前頁面的URL壓入URL歷史堆棧,并打開此前的URL。若該URL不存在,則<prev>無效。語法類似<go>:
<prev><setvar name="name" value="value"/></prev>
 <prev>和</prev>之間可加入一句或多句<setvar name="name" value="value"/>。若不加,則必須變成<prev/>的形式。
<refresh> 用來刷新當前的頁面,從而使得頁面內的變量刷新,語法為:
<refresh><setvar name="name" value="value"/></refresh>
<noop> 表示什么也不做。該標簽不能用在<anchor>中,一般用在覆蓋頁面級的事件模板。
類似于HTML的<FORM>。<fieldset>可用來包括一組表單選項,但不是必須的。前面說過,當<card>的ordered設置為false時,手機可以顯示一個概要卡片來總結有效的選項,方便用戶從中選取表單選項來填寫。概要卡片就是根據(jù)<fieldset>和獨立的輸入框<input>以及選單<select>來總結的。語法為:
<fieldset title="label">表單內容</fieldset>
 可選的title屬性除了可以用來表示表單的名字外,還在概要卡片里作為選擇項的標題。表單內容可以是嵌套的<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"/> 用來輸入文本,除name屬性是必要的,其他可選。
 name屬性,指定了用來存儲該輸入文本的變量名字。 
 title屬性,該輸入框的名字,同樣可被用來作為概要card頁中的選項名。 
 type屬性,默認值為text,如選擇password,則輸入的數(shù)據(jù)顯示為*。 
 value屬性,在語法和行為上等同于下面的default屬性。 
 default屬性,指定輸入框的默認值,即name屬性指定變量的默認值,當用戶輸入新值時,該值無效,如果該值不符合以下format屬性的規(guī)定,則手機忽略該默認值。 
 format屬性,用來格式化輸入的數(shù)據(jù),可用的標記如下,使用時可用“一位數(shù)字標記”和“*標記”的形式,前者代表N個標記型字符,如3X,后者代表任意個(小于maxlength屬性的值)標記型字符。表3-4中包括了在format中常用的枚舉數(shù)值及其意義。 
 maxlength屬性,指定了用戶可輸入的最大字符長度,最大限制為256個字符。 
 emptyok屬性,表示用戶可否不填輸入框,默認為false,即要填。 
 size屬性,輸入框顯示長度,目前未被支持。 
 tabindex屬性,類似于在HTML表單中按TAB鍵后,焦點落在哪個選項上,該值決定了選擇順序,數(shù)字大的排在后面。目前未被支持。 
表 3-4 格式化標記
標記             描述
A           任何符號或者大寫字母(不包括數(shù)字)
a           任何符號或者小寫字母(不包括數(shù)字)
N           任何數(shù)字(不包括符號或者字母)
X           任何符號、數(shù)字或者大寫字母(不可改變?yōu)樾懽帜福?
x           任何符號、數(shù)字或者小寫字母(不可改變?yōu)榇髮懽帜福?
M           任何符號、數(shù)字或者大寫字母(可改變?yōu)樾懽帜福┗蛘叨鄠€字符,默認為首字大寫
m           任何符號、數(shù)字或者小寫字母(可改變?yōu)榇髮懽帜福┗蛘叨鄠€字符,默認為首字小寫
為了說明輸入格式對用戶的影響,請看下面的例子程序:
<?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>
啟動Nokia WAP Toolkit,并選擇“Go”下的“Open Location”,在輸入URL地址后,可以看到模擬器上出現(xiàn)內容。注意光標默認地指在PASSWORD的編輯框內。
選擇“Options”進行編輯,多按幾次按鈕。在輸入沒有滿8個之前選擇“OK”,模擬器沒有任何反應;當超過8個以后就無法再輸入。這就是8x的限制在起作用。并且由于PASSWORD輸入屬性type為“password”因此顯示出來的都是“********”。要注意的是:在輸入的時候不要太快,否則總在一個字符上切換。如果讀者用過手機,應該知道這點。
在刪除所有的字符時候,“Clear”變成了“Back”。模擬器返回以前的頁面。
當編輯“User Name”的時候,發(fā)現(xiàn)輸入的自動都變成大寫。這是因為M起作用。如果輸入超過12個字符,那么將無法再輸入字符。這是maxlength在起作用。
當然可以將輸入方式切換到小寫。
如果這個時候按“OK”,那么USERNAME就變成了“GJTMW.g”。這是由于M前面是“*”的緣故。它不限制輸入字符的數(shù)目。但是如果將“User Name”中所有的字符清除,再選擇“OK”就不行。這是emptyok在起作用。它要求至少輸入一個字符。讀者自己試試吧!
將上例<card>中的ordered的值改為“true”試試看,然后再在<p>和</p>內加入<fieldset title="field1">和</fieldset>試試看。(Nokia WAP Toolkit好像對這些變化視而不見……)
<select>類似于HTML表單中的<SELECT>。<select>和</select>間可包含<optgroup>和<option>標簽,語法如下,所有屬性都為可選:
<select title="label" multiple="false|true" name="variable" default="default" iname="index_var" ivalue="default" tabindex="n">
 <optgroup title="label">選單內容</optgroup>
 <option title="label" value="value" onpick="url"> 事件或者文本 </option>
</select>
title屬性,如以上<input>的title屬性。 
multiple屬性,指定用戶可否進行多項選擇,默認值為false。 
name屬性,用來存儲用戶選擇項的變量名,其值為<option>標簽的value屬性。若用戶沒有選擇又沒有用default屬性指定默認值,則手機將改變量賦值為空字符串(""),對于多項選擇,每個值用“;”分開。 
default屬性,可為name屬性指定的變量賦成默認值。 
iname屬性,用來記錄用戶選擇項的位置,相應的值從1開始。若沒選,則該值為0。 
ivalue屬性,用來記錄默認值所在的位置。 
<optgroup>可用來將多個<option>分組,<optgroup>和</optgroup>間還可包括<optgroup>和<option>,該標簽目前尚未被支持。
<option>,類似于HTML中選單的<option>,用來表示選單的可選項。<option>和</option>間可包括事件和選單的顯示文本。<option>的屬性為可選,其中value屬性用來提供值。當選到該項后,將該值賦給<select>的name屬性所指定的變量。onpick屬性,用來指定用戶選到該項并按ACCEPT鍵后所打開頁面的URL。
為了說明選擇項的工作方式,請看下面的例子:
<?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>
WML的事件基本上分為兩大類,一類是鍵盤(包括軟硬按鈕)輸入事件,用<do>標簽來處理。另一類是相關頁面內部的事件,用<onevent>標簽來處理。
<do>的語法如下:
<do type="type" label="label" name="name" optional="false|true">任務</do>
任務就是以前提到的四種任務。<do>的屬性中,type是必選的,其他為可選。
label屬性,指定了軟按鈕在屏幕上的顯示文本。目前type屬性為delete、help、prev時該屬性無效。 
name屬性,為<do>取個名字。同一的卡片里的<do>不能重名。如果卡片級的<do>和頁面級的<do>同名,則覆蓋頁面級的<do>。 
optional屬性,指定手機是不是可以忽略這個事件,默認值是false。 
type屬性,指定觸發(fā)的事件,具體如表3-5所示: 
表 3-5 type的枚舉值
枚舉值            觸發(fā)原因
accept            調用ACCEPT按鈕機制
delete            調用DELETE按鈕機制
help             調用HELP按鈕機制
options            調用選擇按鈕機制
prev             調用PREV按鈕機制
reset             調用清除和重新設定手機狀態(tài)時的RESET機制(目前不支持)
unknown            調用unknown機制。等價于type=""(目前不支持)
Vnd. co-type         調用廠商特定的機制(目前不支持)
X-*, x-*           供以后使用(不保留)(目前不支持)
為了演示事件的觸發(fā)過程,請看下面的例子:
<?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>

相關文章

最新評論