国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

無線標(biāo)記語言(WML)基礎(chǔ)之編程方法

2019-11-18 16:13:54
字體:
供稿:網(wǎng)友

  元素和標(biāo)簽是WML的主要語法,它們決定了WML編程的基本原則。本章我們將從WML的元素、標(biāo)簽、屬性等方面詳細(xì)講解WML的編程方法。學(xué)習(xí)本章知識之前,讀者應(yīng)當(dāng)了解WML元素與標(biāo)簽的區(qū)別。WML的元素通常有一個首標(biāo)簽、內(nèi)容、其它元素及一個尾標(biāo)簽組成。也就說,單獨的標(biāo)簽是一個元素,成對出現(xiàn)的標(biāo)簽與其包含的內(nèi)容也構(gòu)成一個元素。由于元素牽涉及標(biāo)簽,標(biāo)簽又涉及屬性。

  3.1 卡片、卡片組及其屬性

  我們前面介紹了WML的卡片與卡片組,主要從概念和相互關(guān)系的角度進行了分析。我們這里則從卡片、卡片組的組成、相關(guān)元素、標(biāo)簽技術(shù)性等編程角度進行分析和講解。

  3.1.1 共有屬性

  WML元素的共有屬性主要有3個:id、class和xml:lang屬性。

  WML的所有元素都有兩個核心屬性,即標(biāo)示(id)和類(class)屬性。它們主要用于服務(wù)器方的信息傳輸。其中,id屬性用于定義元素在卡片組中的唯一標(biāo)示,即它的名稱;class屬性用于給當(dāng)前元素定義一個或更多的類(class)。與卡片組一樣,類(class)也是有名字的,而且多個元素可以使用一個類(class)名。具有相同類名的單一卡片組中的所有元素均可被看作相同類的一個部分。類名是區(qū)分大小寫的。如果在class屬性列表中,一個元素多個唯一的類名,那么該元素可以看作這些類中的一部分。具有同一屬性的多個類名必須用兩個以上的空格間隔,WML程序執(zhí)行時將忽視其中多余的類名及其屬性。

  另外,在WML程序,所有包含文本的元素均具有“xml:lang”屬性。該屬性用于指定當(dāng)前元素及其屬性所用的描述語言,如英國英語、美國英語、法語、德語等,并可以為用戶瀏覽器選擇顯示文本的語言提供依據(jù)。

  3.1.2 WML程序的文件頭

  合法的WML卡片組均屬合法的WML文件,因此它必須包含WML的聲明及文件類型的聲明。典型的WML程序的文件頭包括我們前面多次提到的以下兩行程序:

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

  編寫WML程序時,我們必須寫入這兩行程序,并放在程序的開始處。其中"-//wapforun//DTD WML 1.1//EN"是標(biāo)準(zhǔn)通用標(biāo)記語言SGML的公共標(biāo)示;"http://www.wapforum.org/DTD/wml_1.1.xml"是WML程序文檔類型的標(biāo)示。文檔類型標(biāo)示也可以是"text/vnd.wap.wml"或“application/vnd.wap.wmlc”,其中前者制定WML的原文類型,后者制定WML程序編譯后代碼類型。

  3.1.3 WML元素

  WML的WML元素用于定義一個卡片組,并通過<wml>與</wml>標(biāo)簽包含和封裝該卡片組中的所有卡片及信息。它的語法格式如下:

<wml xml:lang="lang">
內(nèi)容(content)
</wml>

  其中xml:lang="lang"用于指定文檔所用語言(前面已有介紹),語言"lang"的值屬于NMTOKEN型數(shù)據(jù)。

  wml元素中包含的內(nèi)容(content)中除了文本、圖像等信息之外,還可以包含head、template及card元素。其中head、template元素如果包含的話則只可包含一次,而card元素必須至少包含一次。有關(guān)這些元素的用法我們后面介紹。

  3.1.4 template元素

  template元素用于為當(dāng)前卡片組中的所有卡片定義一個模板,同一規(guī)定卡片的某些參數(shù)。模版中的事件處理功能則可將這些參數(shù)自動應(yīng)用于同一卡片組中的所有卡片。不過,我們也可以是其中某個或某幾個卡片不采用模板規(guī)定的形式,方法是在該卡片中定義一個同名的事件來替代模板塊中相應(yīng)的事件。template元素通過<template>和</template>標(biāo)簽含所需內(nèi)容(content)而實現(xiàn)模板功能的,其語法格式如下:

<template oneterforward="href" onenterbackwared="href" ontimer="href">
內(nèi)容(content)
</template>

  template元素包含的內(nèi)容中,除了卡片的一般參數(shù)外,還可以包含任意多次的do元素和onevent元素。template元素屬性的功能及用法說明如下:

  1)oneterforward。當(dāng)用戶在瀏覽器中進入當(dāng)前卡片時,該屬性將指定超鏈(href)的URL地址,瀏覽器將據(jù)此打開URL指定的卡片或事件。

  2)oneterbackward。與上一屬性類似,該屬性也可以指定其相應(yīng)卡片或事件的URL地址。如果用戶瀏覽時執(zhí)行PRev任務(wù),那么瀏覽器就會定位到該屬性所指定超鏈(href)的URL地址,并打開URL指定的卡片或事件。

  3)ontimer。當(dāng)指定時間timer過期的時候,用戶瀏覽器就根據(jù)ontimer屬性指定的URL打開相應(yīng)的卡片。

  3.1.5 card元素

  WML的卡片組是由一個或多個卡片(card)構(gòu)成的,每個卡片都包含有一套用戶和瀏覽器交互操作的配置及模式。用戶對交互操作的需求是多樣性的,所以卡片定義時也必須是多樣性的。為此,WML提供了card元素,通過<card>和</card>標(biāo)簽定義一個卡片的各種屬性、包含內(nèi)容。它的語法格式如下:

<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href" ontimer="href">
內(nèi)容(content)
</card>

  card元素中包含的內(nèi)容(content)中除了文本、圖像信息之外,還可以包含onevent、timer、do和p元素。其中,timer元素只可使用一次,其余3種可使用多次。而且,如果card元素包含onevent元素或timer元素的話,那么onevent元素必須放在最前面,timer元素放在onevent元素的后面,隨后才可以使用do或p元素。這個優(yōu)先順序是不能亂的。

  card元素屬性的功能及用法介紹如下:

  1)id。用于指定card的名字。改名字是程序?qū)Ш蕉ㄎ坏囊罁?jù),可以用作程序段錨點,比如<go href="#cardname"/>。其中的cardname便是由id指定的卡片名。

  2)title。用于為卡片制訂一個簡單的標(biāo)題或說明信息。

  3)newcontext。用于指定WAP手機瀏覽當(dāng)用戶重新進入的時候是否需要初始化卡片中所有的內(nèi)容。它有true和false兩種選擇,當(dāng)指定newcontext="ture"時,卡片的所有內(nèi)容在用戶重新進入時將進行初始化,也不清除歷史紀(jì)錄;否則,指定newcontext="false"時,將不進行初始化設(shè)置,也不清除歷史紀(jì)錄。默認(rèn)狀態(tài)下的設(shè)置值為false。另外,newcontext僅當(dāng)作為go任務(wù)的一部分時才可被執(zhí)行。

  4)ordered。用于向用戶手機的瀏覽器指明卡片內(nèi)容的組織形式,以便讓瀏覽器根據(jù)自身特點及卡片內(nèi)容組織及時安排顯示布局。它有兩種布爾值得設(shè)置,即true和false。

  當(dāng)ordered="true"時,瀏覽器將按照線性順序顯示卡片各區(qū)域的內(nèi)容。這個線性順序通常是大多數(shù)用戶所習(xí)慣采用的信息瀏覽順序,比如發(fā)送E-mail信息時,我們依次需要E-mail首件人地址、主題及E-mail內(nèi)容,這個邏輯順序就數(shù)線性順序。

  當(dāng)ordered="flase"時,瀏覽器將根據(jù)用戶選擇或指定的順序來顯示內(nèi)容。這種情況主要是用于顯示用戶選項、無序組建或用戶輸入的簡單數(shù)據(jù)紀(jì)錄等。

  5)onenterforward。onenterforward事件僅當(dāng)用戶使用go任務(wù)或類似于go的任務(wù)位和瀏覽卡片時才可發(fā)生,即如果用戶執(zhí)行g(shù)o任務(wù),則瀏覽器就會定位<go>標(biāo)簽中指定超鏈(href)的URL指定的卡片。card元素中的onenterforward屬性是onevent元素的一個簡單格式,用于直接指定onenterforward事件的URL地址。

  6)onenterbackward。該屬性可以指定其響應(yīng)時間的URL地址。如果用戶瀏覽時執(zhí)行prev任務(wù),那么瀏覽器就會定位到該屬性所制定超鏈 (href)的URL地址,并打開URL指定的卡片。onenterbackward屬性也屬于onevent元素的一個簡單格式。

  7)ontimer。當(dāng)指定時間timer過期的時候,用戶瀏覽器就根據(jù)ontimer屬性指定的URL打開相應(yīng)的卡片。它也屬于onevent元素的一個簡單格式。

  3.1.7 access元素

  access元素是由一個單獨的的標(biāo)簽<access>標(biāo)簽實現(xiàn)的元素。用于定義WML整個卡片組的操作權(quán)限,即訪問控制參數(shù)。access元素必須在head元素內(nèi)和其它的meta信息一起聲明,而且每個卡片組只能有一個access元素。其語法格式如下:

<head>
<access domain="domain" path="path">
...
</head>

  access元素屬性的功能及用法如下:

  1)domain。用于指定對卡片組進行操作的URL域,默認(rèn)域是當(dāng)前卡片組所在的域。domain的目的是限制訪問,用戶瀏覽時瀏覽器將根據(jù)domain值所規(guī)定的值來得出與值匹配的地址,并訪問該地址對應(yīng)的卡片或事件。 2)path。用于指定卡片組操作的其它卡片組所在的根目錄。默認(rèn)目錄是“/”,即當(dāng)前卡片組所在的根目錄。默認(rèn)目錄的規(guī)定使得所有在domain域下的卡片組都可以操作當(dāng)前卡片組。path的值是訪問時需要匹配的路徑,它的工作原理與domain十分相似,需要與路徑的每個子路徑相匹配,否則均屬無效。

  3.1.8 meta元素

  meta元素用于定義WML卡片組相關(guān)的通用meta信息。該元素是由一個單獨的標(biāo)簽即<meta/>標(biāo)簽實現(xiàn)的元素,其語法格式如下:

<meta name="name"http-equiv="name" content="value" forua="truefalse" scheme="format"/>

  其中,name屬性和http-equiv屬性只能選擇使用一個;content屬性是必選的,其值根據(jù)屬性而定;scheme屬性目前尚不支持;forua屬性為可選屬性。各屬性功能及用法說明如下:

  1)content。該屬性用于指定meta信息的性質(zhì)的值,是不必選的。

  2)name。用于指定meta信息性質(zhì)的名稱。用戶瀏覽器通常忽略已經(jīng)命名meta數(shù)據(jù),網(wǎng)絡(luò)服務(wù)企業(yè)拒絕發(fā)送包含該屬性所指定meta數(shù)據(jù)名稱的內(nèi)容。

  3)http-equiv。該屬性用于替代name屬性,可將meta數(shù)據(jù)轉(zhuǎn)為WSP或HTTP協(xié)議的響應(yīng)頭。

  4)forua。該屬性用于指定那些開發(fā)者希望傳送值用戶瀏覽器的性質(zhì)。它有ture和fales兩個取值,如果取false,則卡片組在發(fā)送往客戶端以前必須用中間代理去除meta元素信息,這是因為傳輸?shù)膮f(xié)議可能改變;若取值為true,則meta數(shù)據(jù)必須如實送往用戶的瀏覽器。默認(rèn)的狀態(tài)下,該屬性的值為false。

  5)scheme。該屬性用于指定解釋meta信息性質(zhì)值的形式或結(jié)構(gòu)。具體的形式或結(jié)構(gòu)因meta數(shù)據(jù)的類型不同而不同。
3.2 任務(wù)及其元素

  WML允許我們在程序中指定一些任務(wù),當(dāng)某些特定的事件激活時,即可執(zhí)行這些任務(wù),從而完成需要的操作。例如,我們可以設(shè)定任務(wù),當(dāng)用戶按下相應(yīng)的功能鍵時,瀏覽器就可以打開指定的卡片組或卡片。目前,WML提供了4個任務(wù)元素,即go、prev、noop和refresh,它們主要與do元素和onevent元素中指定的事件相響應(yīng)。本節(jié)我們就對任務(wù)的這些元素做一詳細(xì)介紹。

  3.2.1 go任務(wù)

  go任務(wù)是通過go元素來聲明的,而go元素是通過<go>和<go/>標(biāo)簽進行定義的。go元素主要用來定義瀏覽器需要導(dǎo)航的URL地址。如果該地址是一個WML卡片或卡片組的名字,則瀏覽器就會打開并顯示相應(yīng)的卡片、卡片組;否則,瀏覽器就會執(zhí)行該URL指定的任務(wù)或事件等。在歷史推棧中,go任務(wù)執(zhí)行的是一個“推進(push)”操作,也就是說,它執(zhí)行時瀏覽器瀏覽的URL地址將送入歷史紀(jì)錄列表中,以被它用。

  go元素中可以包含任意次的setvar元素或postfield元素。postfield元素前面已有介紹,這里不再重述,setvar元素我們后面介紹。

  go任務(wù)的語法格式如下:

<go href="href" sendreferer="falsetrue" method="getpost" accept-charset="charset">
內(nèi)容(context)
<go/>

  其中屬性的功能及用法介紹如下:

  1)href。該屬性用于指定目標(biāo)URL地址,比如讓瀏覽器顯示的卡片的地址即名稱等。屬性是必選的,其它屬性為可選。

  2)sendreferer。該屬性用于指定是否傳遞調(diào)用href所指定的URL的卡片的URL,也是當(dāng)前頁的URL,即HTTP頭中HTTP_REFERER。有兩種選擇:true或false。其中,默認(rèn)值為false。

  3)method。與Html中的表單FORM的method屬性一樣,該屬性用于指定表單是以GET的方式還是post的方式遞交,以便通用網(wǎng)關(guān)接口CGI處理。默認(rèn)值為get,但如果沒有指定method屬性,而<go>和<go/>之間存在postfield元素,則WAP手機瀏覽器會自動以post方式傳遞。

  4)accept-charset。當(dāng)web服務(wù)器處理來自瀏覽器的輸入信息時,該屬性可指定服務(wù)器進行數(shù)據(jù)編碼時必須采用的字符集列表。也就是說,該屬性指定的字符集替代HTTP頭里指定的字符集,以便作為服務(wù)器選用字符集的標(biāo)準(zhǔn)。

  3.2.2 prev任務(wù)

  prev任務(wù)是由prev元素實現(xiàn)的。該元素通常是一個單獨的標(biāo)簽<prve/>,不過有時也可由<prev>和</prev>一對標(biāo)簽進行定義。它用于指定將瀏覽器導(dǎo)航至歷史推棧中的前一個URL地址。在瀏覽器操作的歷史推棧中,prev任務(wù)執(zhí)行的是“取出”操作,將前一個URL地址取出,并把當(dāng)前URL地址推進歷史推棧。如果歷史推棧中沒有前一個URL地址,即prev/元素不執(zhí)行任何任務(wù)。

  prev任務(wù)的語法格式為:

<prev/>
或<prev> 內(nèi)容(content) </prev>

  在后一語法格式中,prev元素包含的內(nèi)容里面一般是setvar元素,該元素的含義前面已有介紹,這里不再重述,具體的用法隨后介紹。

  3.2.3 refresh任務(wù)

  refresh任務(wù)由refresh元素聲明,它用于刷新當(dāng)前的卡片,對卡片內(nèi)指定的變量進行更新。其語法格式為:

<refresh>
內(nèi)容(context)
</refresh>

  其中包含的內(nèi)容(content)中一般有setvar元素,其語法格式為<setvar name="name" value="value"/>,它可指定更新的變量名name,即更新的變量值value。另外,refresh元素也可以不包含setvar元素。而通過時間限制(timer元素)對卡片進行刷新。

  3.2.4 noop任務(wù)

  noop任務(wù)由noop元素進行聲明,表示什么也不做,是一個空操作,在替代卡片組級的do元素是十分有用。該元素是一個單獨的標(biāo)簽,即 <noop/> 標(biāo)簽。其語法格式如下:

<nnop/>

  noop元素沒有屬性,下面的簡單程序中就包含了noop元素實現(xiàn)得空任務(wù)操作:

<card id="card1">
<do type="options" name="dome">
<noop/>
</do>
...
</card>
3.3 時間及其元素

  WML提供了幾個元素,專門用于處理用戶瀏覽器的導(dǎo)航和事件。利用這些元素用戶可以給某任務(wù)制定關(guān)聯(lián)事件。那么當(dāng)事件觸發(fā)時,瀏覽器就會執(zhí)行相應(yīng)的任務(wù),比如URL導(dǎo)航就是通過事件實現(xiàn)的。而且,事件可以和一個需要完成的任務(wù)捆綁在一起。事件捆綁時一般是通過幾種元素及其標(biāo)簽聲明來實現(xiàn)的,如go、do和onevent等元素。下面我們就講解WML的事件元素及事件。

  3.3.1 do元素

  do元素提供了一個通用的事件處理機制,使得用戶可以參與當(dāng)前卡片的事件處理。通過<do>和</do>標(biāo)簽將用戶交互和某一個任務(wù)聯(lián)系在一起。用戶交互可以是用戶按下的功能鍵、選擇的菜單項,也可以是用戶的聲音提示。當(dāng)用戶激活這些交互功能時,用戶瀏覽器就會執(zhí)行與do元素相關(guān)的任務(wù)。其語法格式如下:

<do type="type" label="label" name="name" optional="boolean">
任務(wù)(task)
</do>

  其中tast是與do元素關(guān)聯(lián)的動作,也是條件激活時瀏覽器即將執(zhí)行的內(nèi)容。在do元素中,用戶必須綁定且只能綁定go、prev、noop和refresh四種元素所實現(xiàn)任務(wù)中的一個任務(wù)(task)。go元素用于定位制定的URL地址,prev元素用于定位并打開前一操作或任務(wù),doop為空操作,refresh用于刷新當(dāng)前卡片組或任務(wù),有關(guān)他們的詳細(xì)用法我們后面會陸續(xù)介紹。

  do元素可以用于卡片一級,也可用于卡片組一級。當(dāng)用于卡片一級時,do元素必須包含在card元素中;而用于卡片組一級時,do元素必須包含在template元素中,由此定義的do元素將同時應(yīng)用于當(dāng)前卡片組的所有卡片。此時如果某個卡片不想應(yīng)用模板中的do元素及其任務(wù),則需采用我們前面介紹的方法,使用同名事件處理來替代模板中的do元素的事件處理。而且,不論事件關(guān)聯(lián)的任務(wù)是否相同,當(dāng)do元素定義的事件名稱相同時,卡片的do元素將忽視卡片組一級do元素的影響,及卡片一組的do元素將被優(yōu)先執(zhí)行。

  另外,含有空操作任務(wù)的do元素,不論它是否被激活,它都不會傳送或顯示到用戶的瀏覽器中,這在一定程度上可以加快瀏覽器的工作效率,因為服務(wù)器端體它拋棄了一些空任務(wù)的判斷。 do元素各個屬性的功能及用法講解如下:

  1)type。用于指定do元素的類型(type),也即需要關(guān)聯(lián)、綁定的用戶交互事件,是必選屬性。用戶瀏覽器接到這些事件后,就會激活它們并執(zhí)行相應(yīng)的操作與處理。如果在一個卡片中定義了多個do元素并擁有同樣type,那么用戶必須為每個do指定不同的事件名才行,否則就會發(fā)生判斷混亂的錯誤。

  do元素典型的類型(type)及執(zhí)行條件介紹如下:

  1、accept。當(dāng)用戶選擇或按下相應(yīng)功能鍵時(accept)、選項、命名或按鈕時,瀏覽器接收或激活當(dāng)前所作選擇。

  2、prev。激活prev鍵時,瀏覽器將導(dǎo)航到歷史記錄中的前一個卡片。

  3、help。激活HELP功能鍵或相應(yīng)按鈕、命名時,瀏覽器顯示與當(dāng)前內(nèi)容相關(guān)的幫助信息。

  4、reset。激活reset功能鍵或相應(yīng)按鈕、命名時,清除或重置當(dāng)前卡片組或瀏覽器的狀態(tài)。

  5、options。激活options功能鍵或相應(yīng)按鈕、命名時,瀏覽器顯示與當(dāng)前內(nèi)容有關(guān)的選項或附加操作。

  6、delete。激活delete功能鍵或相應(yīng)按鈕、命名時,刪除當(dāng)前項目或選擇。

  7、unknown。如果給出的類型不能為do元素所識別,則一律按照unknown型處理,相當(dāng)于類型為空,即type=""。

  8、vnd.*。vnd.*及其它不同大小寫組合[Vv][Nn][Dd].*。這種類型定義的都是vnd.cotype,用于激活供應(yīng)商或用戶瀏覽器自定義的某個特定功能,其中co為公司(company)名的縮寫。

  9、X-*與X-*。擴展類型,目前WML中還沒有使用。

  2)label。該屬性指定的文本字符串可以表示用戶的交互事件。例如,當(dāng)把某一個任務(wù)綁定在accept鍵上之后,并設(shè)置了label屬性,比如label="gone",那么瀏覽器就會將label的值“gome”顯示在屏幕上;如果不指定,瀏覽器則會顯示默認(rèn)的“ok”字符串。為了保證能在較小的手機上顯示出來,label的屬性值最多不超過6個字符。不過這可能因WAP手機品牌、型號不同而稍有不同,有的手機最多不能超過5個字符。而且,如果手機瀏覽器不支持動態(tài)標(biāo)簽顯示,那么它就會忽視labe


  l屬性。

  3)該屬性用于指定do元索所綁定事件的名稱。如果多個do元素制定了相同的name,那么他們綁定的事件統(tǒng)屬一個。如果卡片一般與卡片組一級中do元素制定了相同的事件名,那么卡片一級的時間將被優(yōu)先執(zhí)行,卡片組一級的事件將被忽視。

  WML規(guī)定,在同一卡片或在同一模板中,不得指定具有相同事件名(name)的兩個或兩個以上的do元素。

  另外,如果name屬性值為空,則相當(dāng)于沒有指定name屬性,這時do元素執(zhí)行的事件或操作由type的屬性值決定。

  4)optional。指定瀏覽器是否忽視do元素及其包含的任務(wù)。有兩個可選值:true和false。如果值為true,則瀏覽器將忽視當(dāng)前do元素,即不執(zhí)行它所綁定的任務(wù)。反之,若值為false,則執(zhí)行do元素。

  3.3.2 ontimer事件

  ontimer用于指定一個事件。當(dāng)<timer/> 標(biāo)簽指定的時間到期后,瀏覽器就執(zhí)行ontimer所指定的這個事件。ontimer的時間可以是一個URL地址,一個卡片組,一個WML網(wǎng)頁,一幅圖像或其他符合URL定位的規(guī)則的文件。<timer/>標(biāo)簽指定的時間為正整數(shù),單位大小為1/10秒。

  ontimer時間只能包含在card元素或template元素的標(biāo)簽中進行定義,其語法形式如下:

<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href" ontimer="href">
內(nèi)容(content)
</card>

  或:

<template onenterforward="href" onenterbackward="href" ontimer="href">
內(nèi)容(content)
</template>

  ontimer事件只有一個屬性,即ontimer。它用于指定一個超鏈(href)的URL地址,指定時間timer過期的時候,用戶瀏覽器就會按照超鏈(href)的URL打開相應(yīng)的卡片。

  3.3.3 onenterforward事件

  onenterforward事件僅當(dāng)用戶使用go任務(wù)或類似于go任務(wù)的任務(wù)來定位和瀏覽卡片時才可發(fā)生。設(shè)置onenterforward事件后,當(dāng)用戶進入當(dāng)前卡片組時,瀏覽器就會定位onenterforward屬性或<go/>標(biāo)簽中指定超鏈(href)的URL地址,并打開URL指定的卡片。

  onenterforward事件需要包含在card元素、template元素或onevent元素的標(biāo)簽中進行定義,其語法格式為:

<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href" ontimer="href">
內(nèi)容(content)
</card>

  或:

<template onenterforward="href" onterbackward="href" ontimer="href">
內(nèi)容(content)
</template>

  或:

<o(jì)nevent type="onenterforward">
<go href="href"/>其他任務(wù)(task)
</onevent>

  前兩種格式中,onenterforward事件作為card元素或template元素標(biāo)簽中的一個屬性進行定義的,該屬性即為onenterforward,它制定了一個超鏈(href)的URL地址,當(dāng)用戶進入當(dāng)前卡片時,瀏覽器就據(jù)此打開URL指定的卡片。這種格式制定的任務(wù)相當(dāng)與go任務(wù)。

  3.3.4 onenterbackward事件

  當(dāng)用戶使用prev任務(wù)或類似的任務(wù)來導(dǎo)航至某一卡片時,onenterbackward事件才可發(fā)生。換句話說,當(dāng)用戶從歷史堆棧中選取URL地址,并通過瀏覽器打開這一地址對應(yīng)的卡片時,onenterbackward事件才可能發(fā)生。

  與onenterforward事件類似,onenterbackward事件也需要包含在card元素、template元素或onevent元素的標(biāo)簽中進行定義。其具體語法格式如下:

<card id="name" title="label" newcontext="boolean" ordered="true" onenterforward="href" onenterbackward="href" ontimer="href">
內(nèi)容(content)
</card>

  或:

<template onenterforward="href" onterbackward="href" ontimer="href">
內(nèi)容(content)
</template>

  或:

<o(jì)nevent type="onterbackward">
<go href="href"/>其他任務(wù)(task)
</onevent>

  前兩種格式中,onterbackward事件是作為card元素或template元素標(biāo)簽中的一個屬性進行定義的,該屬性即為onterbackward,它指定了一個超鏈(href)的URL地址,當(dāng)用戶使用prev等任務(wù)項回到地址時,瀏覽器就會打開URL指定的卡片。

  后一種格式中,onterbackward事件作為onevent元素的一給類型值,并結(jié)合<go/>標(biāo)簽指定事件激活時瀏覽器需要打開的卡片的URL地址。

  3.3.5 onpick事件

  onpick事件在定義時一般通過onpick屬性指定一些項目,當(dāng)用戶選擇或取消這些項目時,即可觸發(fā)onpick事件,執(zhí)行onpick屬性所指定的項目,如打開卡片、卡片組或其他事件等。onpick事件通常在option元素的標(biāo)簽中進行定義,其語法格式如下:

<o(jì)ption value="value" onpick="href">
內(nèi)容(content)
</opiton>

  可以看出onpick時間作為option元素的一個屬性來定義具體的動作。這個屬性即onpick,它指定了事件觸發(fā)時瀏覽器需要定位的超鏈的URL地址。

  3.3.6 onevent元素

  onevent元素通過<o(jì)nevent>和</onevent>標(biāo)簽可以把包含的任務(wù)與特定的時間捆綁在一起。當(dāng)用戶激活這一特定事件時,onevent元素所綁定的任務(wù)就會被立即執(zhí)行。onevent元素的語法格式如下:

<o(jì)nevent type="type">
任務(wù)(task)
</onevent>

  其中task是與onevent元素關(guān)聯(lián)的動作,也是條件激活時瀏覽器即將執(zhí)行的內(nèi)容。與do元素一樣,onevent元素中用戶也必須綁定且只能綁定go、prev、noop和refresh四種元素所實現(xiàn)任務(wù)中的一個任務(wù),go元素用于定位指定URL地址、prev元素用于定位并打開前一操作或任務(wù),noop為空操作,refresh用于刷新當(dāng)前卡片組或任務(wù)。

  onevent元素只有一個屬性,即type屬性,它是必選屬性,主要用于定義特定事件的名稱。該屬性值的數(shù)據(jù)類型為CDATA型。

  3.3.7 postfield元素

  postfield元素用于指定當(dāng)瀏覽器接到URL請求時,向原服務(wù)器(origin server)傳送的域名其域值。傳輸時,傳輸域及傳輸值的實際編碼方式主要依賴于瀏覽器與原服務(wù)器的通信方式。postfield元素是通過單獨?lt;postfield/>標(biāo)簽進行定義的,其語法格式如下:

<postfield name="name" value="value">

  它共有兩個屬性:name與value,它們的取值均屬于VDATA型數(shù)據(jù)。其中,name屬性用于指定傳輸域的名稱,value屬性用于定義傳輸?shù)闹?。這兩個屬性均為必選屬性。
3.4 變量設(shè)置元素與變量設(shè)置的有關(guān)規(guī)定

  幾乎所有的WML內(nèi)容都可通過設(shè)置參數(shù)來實現(xiàn),這為我們靈活的開發(fā)WML程序提供了方便。本節(jié)我們先介紹一個變量設(shè)置元素,然后再介紹與變量設(shè)置有關(guān)的一些具體規(guī)定。

  3.4.1 setvar元素

  setvar元素用于指定在當(dāng)前上下文內(nèi)容中的變量的值,從側(cè)面影響正在運行的任務(wù)。其語法格式如下: <setvar name="name" value="value"/>

  它有兩個屬性:name和value。前者用于指定變量的名稱,后者用于指定所需賦給變量的值。這兩個屬性都是必選的,它們的數(shù)據(jù)類型均屬于VDATA型。如果name屬性所規(guī)定的變量名不合法或不符合運行環(huán)境的要求,那么setvar元素在WML程序運行中將被忽視,不能發(fā)揮其應(yīng)有的作用。

  3.4.2 變量設(shè)置

  WML編程中可以使用變量,變量使用前必須進行定義。變量的命名原則及定義方法我們上一章已經(jīng)講過了,這里不再重述。在這里,我們主要介紹WML程序中設(shè)置變量的規(guī)定。

  如前所述,setvar元素可用來設(shè)置變量,設(shè)置時setvar元素一般需要在go、prev或refresh元素中進行定義。另外,利用input和select元素也可以設(shè)置變量。其中前者是將用戶輸入的文本賦給變量,作為變量的值;而后者則將用戶從option元素中選擇的value屬性的值賦給變量。有關(guān)input元素和select元素的語法格式及具體用法我們后面再行介紹。

  設(shè)置變量時,以下幾種情況還應(yīng)當(dāng)引起大家注意:

  1)可以使用WMLScript的變量值設(shè)置WML的變量,反之亦然。也就是說,使用WML及WMLScript編寫程序時,它們可以使用同名編程。

  2)在WAP開發(fā)工具中,通常提供有對變量進行管理和維護的選項卡或?qū)υ捒?,開發(fā)人員從中也可以對相應(yīng)的變量進行設(shè)置及編輯。

  3)在當(dāng)前上下文內(nèi)容中,可以使用card元素的newcontext屬性來消除所有的變量值。

  3.5 用戶輸入處理元素

  通過WAP手機的按鍵,用戶可以向瀏覽器顯示的卡片中輸入數(shù)據(jù)信息或操作信息。WML為此專門提供了處理用戶輸入的元素。

  3.5.1 input元素

  input元素用于定義文本實體對象,包含有對輸入文本內(nèi)容的格式、數(shù)據(jù)類型、長度、值、變量名等多種屬性的具體規(guī)定。當(dāng)用戶輸入滿足input元素的規(guī)定時,則接收輸入信息,并賦給指定的變量靈活進行相應(yīng)的操作、處理;否則,就通過瀏覽器給出具體的處理意見,并進行是單個輸入處理或變量初始化操作,比如刷新卡片以讓用戶重新輸入,或給用戶指出輸入錯誤所在并等待進一步的處理指令等。input元素是WML編程中處理用戶交互活動的重要元素,它通過單獨的<input/>標(biāo)簽進行定義,其語法格式如下:

<input name="variable" title="label" type="type" value="value" default="default" format="specifier" emptyok="falsetrue" size="n" maxlength="n" tabindex="n"/>

  其中除了name屬性是必選的以外,其他屬性都是可選的。這些屬性的功能和用法介紹如下: 1)name。該屬性用于指定用來保存用戶輸入文本的變量和名稱。定義name屬性后WML將根據(jù)該屬性也即變量名,為即將輸入的文本實體對象與之存儲空間,以便接收用戶輸入。

  2)title。該屬性用于input元素的標(biāo)簽,通常是位于輸入框前的提示信息。

  3)type。用于指定文本輸入?yún)^(qū)的類型,有text和passWord兩種選擇。默認(rèn)值為text,指定的用戶可以輸入文本,而且輸入的文本會同時逐漸響應(yīng)并顯示在瀏覽器中。如果選擇password,則指定用戶輸入的文本作為密碼文本處理,WML程序按文本實體接收輸入的數(shù)據(jù),而瀏覽器上響應(yīng)用戶輸入顯示時逐漸均為星號(*),由此起到保密的目的。

  4)value。該屬性用于指定name屬性所定義變量的值,它將顯示在輸入框中。

  5)default。該屬性用于指定name屬性所定義變量的默認(rèn)值。

  6)format。該屬性用于格式化輸入的數(shù)據(jù)。

  7)maxlength。該屬性用于指定用戶可輸入字符串的最大長度。該屬性的上限為256,最多不能超過256個字符。

  8)emptyok。用于指定用戶是否可以不在輸入框內(nèi)輸入內(nèi)容。

  9)size。該屬性用于指定輸入框的寬度,寬度值為字符個數(shù)。

  10)tabindex。用于指定多個輸入框存在時,類似于HTML中Tab鍵的具體位置。

  3.5.2 select元素

  選擇列表屬于輸入元素,允許用戶從選項列表中選擇需要的項目。WML不僅支持單選列表,及單選項,而且支持多選列表,也就是復(fù)選項。select元素允許用戶從選列表中選擇所需的項目。列表中的選項采用后面我們就要講到的option元素進行定義,一般是一行格式化的文本。編程時,我們可以使用optgroup元素將option元素的情況項目分成不同級別或?qū)哟蔚倪x項組,為用戶選擇提供方便。

  select元素是通過<select>和</select>標(biāo)簽進行定義的,語法格式如下:

<select title="label" multiple="falsetrue" name="variable" default="default" iname="index_var" ivalue="default" tabindex="n">
內(nèi)容(content)
</select>

  其中所有屬性都是可選的。select元素各個屬性的功能和用法介紹如下:

  1)multiple。該屬性用于指定選擇列表是否可以使用復(fù)選框。

  2)name。該屬性用于指定接收選項值的變量的名稱,變量值由value屬性預(yù)設(shè)定。

  3)value。用于制定name屬性所定義變量的默認(rèn)值。

  4)iname。用于指定包含排序號的變量的名稱。

  5)ivalue。用于指定選擇列表中被選中選項的值,是一個具有排序號性質(zhì)的值。

  6)title。用于指定選擇列表的標(biāo)題。

  7)tabindex。用于指定當(dāng)前選擇光標(biāo)在選擇列表中的具體位置,該位置即為當(dāng)前選擇操作將要選擇的選項所在的位置。

  3.5.3 option元素

  option元素用于定義select元素中的一組單選項。它通過<o(jì)ption>和</option>標(biāo)簽進行定義,并可包括事件和單選項的顯示文本等信息,其語法格式如下:

<o(jì)ption title="label" value="value" onpick="href">
內(nèi)容(content)
</option>

  option元素的屬性均為可選,各屬性功能及用法說明如下:

  1)value。該屬性用于設(shè)置鍵值。當(dāng)用戶選到該選項之后,option元素就會將該值賦給selet元素的name屬性所指定的變量。

  2)title。用于option元素制定的一個標(biāo)題,以便提示用戶操作。

  3)onpick。該屬性用于指定用戶選到該項并按accept鍵后所打開卡片組的L。

  3.5.4 optgroup元素

  optgroup元素用于將多個相關(guān)的option元素進行分組,用戶瀏覽器可以借助這種分組來安排選項列表的顯示布局,以方便用戶選擇。optgroup元素是通過<o(jì)ptgroup>和</optgroup>標(biāo)簽進行定義的,其語法格式如下:

<o(jì)ptgroup title="label">
內(nèi)容(content)
</optgroup>

  它所包含的內(nèi)容中需要包含至少一次option元素或其他的optgroup元素。

  optgroup元素只有一個屬性,即title屬性,用于定義optgroup元素的標(biāo)題,以便提示用戶操作。

  3.5.5 fieldset元素

  fieldset元素用于設(shè)定輸入框和相應(yīng)的說明文本,從而用戶就可以利用input元素等借助該輸入框輸入所需的數(shù)據(jù)信息。fieldset元素的語法格式如下:

<fieldset title="label">
內(nèi)容(content)
</fieldset>

  由于fieldset元素和輸入有關(guān),所以它們的內(nèi)容中可以包含與輸入有關(guān)的其他元素。 其語法格式可以看出,fieldset元素只有一個屬性,即title屬性,用于定義fieldset元素的標(biāo)題,以便提示用戶操作。
3.6 錨、圖像、定時器及其元素

  本節(jié)我們講解與定位和定時控制有關(guān)的3類元素,包括anchor、a、img、timer幾種元素。使用它們可以在WML卡片中創(chuàng)建超鏈接,或在文本流中顯示一幅圖像,或設(shè)置定時器來控制用戶操作及卡片顯示等。

  3.6.1 anchor元素

  anchor元素用于創(chuàng)建一個超鏈接的頭部,超鏈接的其余部分為用戶指定的URL地址。當(dāng)程序運行中用戶選中該超鏈接時,瀏覽器就會被引入到超連接指定的地址,如其他卡片組或同一卡片組中的其他卡片。

  anchor元素由<anchor>和</anchor>標(biāo)簽進行定義,它所包含的超連接必須是真實存在的,而且是能夠正確連接的超連接。anchor元素定位超鏈接時,必須通過相關(guān)的任務(wù)元素完成定位處理,如go元素、prev元素、refresh元素等。不過,在anchor元素中只能包含1個定位任務(wù),多于一個時會導(dǎo)致WML運行錯誤。

  anchor元素的語法格式如下:

<anchor title="label">
任務(wù)
文本
</anchor>

  其中的任務(wù)需要包含一個進行定位的任務(wù)元素??梢钥吹?,anchor元素只有一個屬性,即title屬性,用于定義fieldset元素的標(biāo)題,它用于定義即title屬性,用于定義fieldset元素的標(biāo)題,以便提示用戶操作。元素的超連接的標(biāo)題。用戶瀏覽時可利用這一標(biāo)題來及時了解操作的超連接的名稱或者有關(guān)提示信息。

  3.6.2 a元素

  a元素是由anchor元素的簡化形式,它內(nèi)含了anchor元素需要包含的go元素功能愛完成超連接定位,并且不再包含其他任何變量設(shè)置。它使用<a>和</a>標(biāo)簽進行定義。

  3.6.3 img元素

  img元素用于格式化的文本中防止和顯示一幅圖像。當(dāng)然,前提是用戶所用的瀏覽器必須支持圖像顯示。img元素由單獨的<img/>標(biāo)簽進行定義,它不包含其它元素。其語法格式如下:

<img alt="text" src="url" localsrc="icon" aligh="alignment" height="n" width="n" vspace="n" hspace="n"/>

  屬性中alt和src是必須要有的,其他可選。另外,需要注意的是img元素要放在p元素里,而不能放在do或option元素里。

  img元素各個屬性的功能和用法介紹如下:

  1)alt。該屬性用來指定當(dāng)手機不支持圖像顯示用來替代現(xiàn)實的文字文本。

  2)src。該屬性用于指定圖像文件的URL地址。

  3)localscr。該屬性用來指定顯示存在手機ROM的圖標(biāo)文件。

  4)align。該屬性用來指定圖像顯示是相對當(dāng)前文本行的對齊方式。

  5)height。用于設(shè)定圖像顯示時的高度。

  6)width。與height屬性類似,用于設(shè)定圖像顯示時的寬度或?qū)挾劝俜直取?br />
  7)vspace。該屬性用于指定圖像顯示時的上邊距和下邊距,默認(rèn)值為0。

  8)hspace。與vspace屬性類似,該屬性用于指定圖像顯示時的左邊距和右邊距。

  3.6.4 timer元素

  timer元素用于設(shè)定一個定時器,可以延時顯示卡片組、卡片,或?qū)崿F(xiàn)WML程序的等待操作,或在卡片組和卡片之間實現(xiàn)切換以取得動畫效果。

  一個卡片只能使用一次timer元素,也即是說只能設(shè)置一個定時器。當(dāng)用戶進入還有定時器的卡片時,定時器就會開始工作,其時間值就會逐漸減小。timer元素指定的時間值單位1/10秒。其語法格式如下:

<timer name="variable" value="value"/>

  它的兩個屬性中,value屬性是必選的,name屬性為可選。name屬性用于指定表示時間值的變量的名稱,該變量的取值由定時器的時間值決定,時間值減小,該變量的值也相應(yīng)地減小,并終始保持不變。

  value屬性用于指定name屬性所定義變量的初始值。如果name屬性定義的變量在定時器初始化時還沒有值,那么該變量就將采用value屬性指定的值;否則,改變量就會忽視value屬性的值。如果沒有定義name屬性,也就是說,沒有指定時間變量,那么timer元素指定的定時器仍將采用value屬性的值進行延時處理。

  3.7 文本格式化及其元素


  WML程序中,為使顯示的文本呈現(xiàn)出豐富的樣式,WML提供了一些用于格式化的元素,我們通過這些元素及其相應(yīng)的標(biāo)簽可以對文本進行標(biāo)注和控制,從而實現(xiàn)不同的顯示效果。

  3.7.1 增強元素

  增強元素都是一些成對的標(biāo)簽,用于指定文本的增強顯示信息。比如b元素通過<b></b>標(biāo)簽可以控制其中的文本按照粗體字進行顯示。

  3.7.2 br元素

  “br”即break,是用于換行的元素,它是使用單獨的
標(biāo)簽進行定義的。br元素的作用相當(dāng)于插入一個回車符。


  3.7.3 p元素

  “p”即指paragraph,p元素用于劃分段落,是當(dāng)前文本換行并插入一個空白行。p元素可以使用單獨的<p/>標(biāo)簽進行定義,也可以使用<p>和</p>標(biāo)簽成對的進行定義。其語法格式為:

<p aligh="alignment" mode="wrapmode"/>

  或

<p aligh="alignment" mode="wrapmode"/>
文本
</p>

  1)align。該屬性用于設(shè)置段落在瀏覽器中的對齊方式,有l(wèi)eft、center和righ三種取值。這三種參數(shù)值分別表示p元素當(dāng)前定義的文本段落及瀏覽器窗口的左側(cè)、中間和右側(cè)進行對齊。默認(rèn)值為left,及段落與瀏覽器窗口的左側(cè)對齊排列。

  2)mode。該屬性用于指定下一段落的換行方式。

  3.7.4 td元素

  td元素用于規(guī)定表格單元格的內(nèi)容。其語法格式如下:

<td> 單元格內(nèi)容 </td>

  3.7.5 tr元素

  WML中的表格是按照行、列進行組織的。一個表格由若干行組成,每行由若干列組成。tr元素用于定義表格的行。其語法格式如下:

<tr> 單元格內(nèi)容 </td>
</tr>

  3.7.6 table元素

  table元素與tr元素、td元素一起,可用來創(chuàng)建能容納文本和圖像的表格,并可設(shè)置表格各列中文本和圖像的對齊方式。其語法格式如下:

<table align="alignment" title="label" columns="n">

  或

<table align="alignment" title="label" columns="n">
內(nèi)容
</table>

  其中各個屬性的功能和用法介紹如下:

  1)align。該屬性用于指定表各個列中文本和圖像的對齊方式。

  2)title。該屬性用于指定table元素的標(biāo)題。

  3)columns.該屬性用于指定表格的列數(shù),該數(shù)不能為0

(出處:http://www.survivalescaperooms.com)



上一篇:JavaServer Faces 概述

下一篇:MIDlet 部署

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武安市| 邓州市| 贵港市| 宁都县| 全州县| 甘德县| 无为县| 新民市| 德州市| 云南省| 广东省| 来安县| 屏山县| 榆社县| 南澳县| 天全县| 安远县| 习水县| 晋州市| 绍兴县| 洪雅县| 彩票| 获嘉县| 临高县| 马边| 肇州县| 怀宁县| 多伦县| 黑山县| 周宁县| 开封县| 扶余县| 宁波市| 牙克石市| 河东区| 景宁| 满洲里市| 山东省| 柞水县| 蒙城县| 北安市|