wml基礎

首次整理於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個標記型字符


標記 描述
A 任意符號或者大寫字母(不包含數字)
a 任意符號或者小寫字母(不包含數字)
N 任何數字(不包括符號或者字母)
X 任何符號、數字或者大寫字母(不可改變爲小寫字母)
x 任何符號、數字或者小寫字母(不可改變爲小寫字母)
M 任何符號、數字或者大寫字母(可改變爲小寫字母)或者多個字符,默認爲首字大寫
m 任何符號、數字或者小寫字母(可改變爲大寫字母)或者多個字符,默認爲首字小寫

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

指定觸發的事件,具體如下:


type值 觸發原因
accept 調用ACCEPT按鈕機制
delete 調用DELETE按鈕機制
help 調用HELP按鈕機制
options 調用選擇按鈕機制
prev 調用PREV按鈕機制
reset 調用清除和重新設定手機狀態時的RESET機制(目前不支持)
unknown 調用unknown機制,等於type=""(目前不支持)
vnd. co-type 調用廠商特定的機制(目前不支持)
X-*, x-* 供以後使用(不保留)(目前不支持)


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標籤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章