首次整理於2010-3-3
1、wml文件命名
*.wml
2、wml基本格式
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
eg: 一個簡單wap頁面所需要的元素index.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 id="index" title="hello wap1.x">
<p> hello wap1.x</p>
</card>
</wml>
1. 文件大小最好不要超過1.2k
2. <head></head>之間可以包含一個<access />和多個<meta />
3、wml標籤
3.1、<card />標籤
屬性 | 含義 |
id | card名字,可用來在card間跳轉。相當於HTML的<a name="" /> |
title | 書籤標記 |
newcontext | 默認false.用來表示當跳轉本card時,手機是否清除以前保留的信息,包括變量,堆棧歷史信息,重新設置手機狀態等 |
ordered |
默認true,表明該card裏的內容可以按一定的順序顯示,默認是按線性順序顯示(即按代碼順序)。 當ordered設置爲true時,如果一個表單的內容不能在一屏裏顯示完,就分成多屏顯示; 當ordered設置爲false時,手機可以顯示一個概要CARD來總結有效的選項 ,用戶可以從中選取表單選項來填寫 |
on*** |
類似於HTML標籤中的onXXX屬性,用來捕捉事件,當事件被觸發時執行指定的操作(任務)。 eg:onenterforward="url" onenterbackward="url" ontimer="url" |
3.2、<input />標籤
屬性 | 含義 | ||||||||||||||||
name | 輸入文本變量名 | ||||||||||||||||
title | 輸入框名字 | ||||||||||||||||
type | 輸入框類型,默認text.可選擇text/password | ||||||||||||||||
value | 輸入框的值 | ||||||||||||||||
default | 輸入框的默認值 | ||||||||||||||||
format |
格式化輸入數據。可用“一位數字+標記”和“*+標記”的形式。前者表示N個標記型字符
eg: 2N:兩位數字;12N:十二位數字;*N:N位長度的數字 |
||||||||||||||||
maxlength | 最大輸入長度 | ||||||||||||||||
emptyok | 是否必填true/false。默認false |
3.3、<p />標籤
<p></p>用來顯示文本
屬性 | 含義 |
align | 顯示文本對齊方式 left|right|center |
mode | 是否自動換行。默認wrap warp|nowrap |
maxlength | 最大輸入長度 |
3.4、<img />標籤
顯示圖片
屬性 | 含義 |
alt | 手機不支持圖片時顯示的文字 |
src | 圖片地址,如果有localsrc時就忽略該屬性 |
localsrc | 指定顯示存在在手機ROM中的圖標,如果找不到則到UP.Link Server上去找。 |
其他 | 除外還有一些height\width\vspace\hspace屬性。 |
注:<img>要放在<p>裏,不能放在<do/>和<option/>等功能鍵標籤和選單標籤裏.
3.5、<anchor />標籤
1. 一般的鏈接:<a href='url' title='title'>url..</a>
2. 錨:<anchor title='label'> 任務標籤 </anchor> <a />其實是當任務標籤爲<go />時的簡單表示
3.6、<go />標籤
<go />標籤類似HTML中的<from/>標籤,使用如下:
<go href='login.wml' method='get|post' sendreferer="false|true" accept-charset="charset"> <postfield name='name' value='value' /> <setvar name='name' value='value' /> </go>
1. sendreferer屬性表示是否傳遞調用href所指定的URL的頁面的URL,也就是當前頁的URL,即 HTTP 頭中的HTTP_REFERER,默認值爲false,可選值爲true
2. 未指定method但<go></go>間存在<postfield>,手機自動以post方式傳遞
3. accept-charset 屬性可覆蓋在HTTP頭裏指定的字符集,可以寫多個字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"
4. <postfield name="name" value="value"/>可以看作是HTML表單FORM中的<INPUT TYPE="HIDDEN" NAME="變量名" VALUE="值">,通過它可以向指定的URL傳遞以“變量名/值”形式的數據。name和value屬性都是必選的。注意只有這裏的變量是用來遞交給CGI程序的
5. 除了<postfield>,還可以在<go>和</go>間加入一句或者多句<setvar name="name" value="value"/>,該語句的意思是,當觸發某一事件時,給變量賦值
3.7、<prev />標籤
1. <prev>用來將當前頁面的URL壓入URL歷史堆棧,並打開此前的URL,若該URL不存在,則<prev>無效。
2. 語法類似<go>:<prev><setvar name="name" value="value"/></prev>,<prev>和</prev>之間可加入一句或多句<setvar name="name" value="value"/>,若不加,則必須變成<prev/>的形式
3.8、<refresh />標籤
1. <refresh>用來刷新當前的頁面,從而使得頁面內的變量刷新
2. 語法爲<refresh><setvar name="name" value="value"/></refresh>
3.9、<do />標籤
處理鍵盤(包括軟硬按鈕)輸入事件
<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 |
指定觸發的事件,具體如下:
|
3.10、<onenvent />標籤
<onevent>的語法如下:
<onevent type="type">任務</onevent>
必選屬性type的取值如下:
type值 | 如果用戶執行了以下操作就執行任務 |
onpick | 用戶選擇或不選一個<option>項時 |
onenterforward | 用戶使用<go>任務到達一個CARD時 |
onenterbackward | 用戶使用<prev>任務返回到前面的CARD時,或者按BACK按鈕時 |
ontimer | 當<timer>過期時。 |
3.11、其他標籤
1. <br /> 換行標籤:在表單中如果有多個<input>或者<select>,其間不要用<br/>,否則會使手機瀏覽器認爲是斷點而把表單分頁顯示
2. <b/><i/><u/><em/><strong/><big/><samll/><table/>同HTML標籤