第六章 WML Script標準函數庫(下)
[日期:2004-11-23] |
來源:賽迪網? 作者: |
[字體:大中小] |
6.5 URL函數庫
名稱:URL
說明:這個函數庫包含了處理絕對的URL與相對URL的程序,一般的URL語法如下:
://:/;?#
isValid
程序:isValid(url)
說明:如果給予的url值是正確的URL語法,則回傳ture,否則回傳false
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:布爾值或invalid
例外狀況:無
范例:var a=URL.isValid
("http://www.acme.com/script#func()"); //a=ture
var b=URL.isValid("../common#test()"); //b=ture
var c=URL.isValid
("experimental?://www.acme.com/pub"); //c=false
getScheme
程序:getScheme(url)
說明:回傳給予url的調用方式scheme
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.geScheme("http://w.a.com"); //a="http"
var b=URL.getSceme("w.a.com"); //b=""
getHost
程序:getHost(url)
說明:回傳給予url的主機
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.geHost("http://www.acom.com/pub"); //a="www.acm.com"
var b=URL.getHost("path#fray"); //b=""
getPort
程序:getPort(url)
說明:回傳給予url的端口(port)
如果port沒有制定,則回傳空字符串
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.getPort("http://www.acom.80/path"); //a="80"
var b=URL.getPort("http://www.acom./path"); //b=""
getPath
程序:getPath(url)
說明:回傳給予url的路徑(path)
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.getPath("http://w.a.com/home/sub/comp#frag"); //a="/home/sub/comp"
var b=URL.getPath("../home/sub/comp#frag"); //b="../home/sub/comp"
getParameters
程序:getParameters(url)
說明:回傳給予url的路徑(parameter)
如果沒有指定參數,則回傳空字符串
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.getParameters("http://w.a.c/scr;3;2?x=1&y=3"); //a="3;2"
var b=URL.getParameters("../scr3;2?x=1&y=3"); //b="../home/sub/comp"
getQuery
程序:getQuery(url)
說明:回傳給予url的詢問部分(query)
如果沒有指定的詢問部分,則回傳空字符串
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.getParameters("http://w.a.c/scr;3;2?x=1&y=3"); //a="3;2"
getFragment
程序:getFragment(url)
說明:回傳給予url的片斷(fragment)
如果沒有指定片斷,則回傳空字符串
絕對與相關URL都能支持
相關URL不會被轉成絕對URL
參數:url=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.getFragment("http://www.acom.com/cont#fray"); //a="fray"
getBase
程序:getBase()
說明:回傳次WML Script程序的絕對URL(沒有fragment的部分)。
參數:無
回傳值:字符串
例外狀況:無
范例:var a=URL.getBase(); //Result;
"http://www.acme.com/test.scr"
getReferer
程序:getReferer()
說明:回傳調用目前程序資源的最小相關URL(與目前程序的基本URL的相關)
內部程序調用并不會改變參照者
如果目前的程序并沒有參照者,則回傳空字符串
參數:無
回傳值:字符串
例外狀況:無
范例:var base=URL.getBase(); //base
="http://www.acme.com/current.scr"
var prferer=URL.getReferer(); //referer="app.wml"
resolve
程序:resolve(baseUrl,embeddedUrl)
說明:根據RFC2396的文件,由給予的基本base與插入embeddedUrl回傳絕對URL
參數:baseUrl=字符串
embeddedUrl=字符串
回傳值:字符串或invalid
例外狀況:如果遇到不正確的URL語法,則回傳invalid
范例:var a=URL.resolve(http://www.foo.com/,"foo.vcf"); //a="http://www.foo.com/foo.vcf"
escapeString
程序:escapeString(string)
說明:這個程序會將所給與string字符串之中的特殊字符使用十六進制逃脫序列來替代(你必須使用量為逃脫序列格式%xx),這些逃脫字符如下:
控制字符(control characters):US-ASCII編碼的字符00-1F與7F
空格(Space):US-ASCII碼編字符20十六進制
保留字(Reserved):";"|"/"|"?"|":"|"@"|"="|"+"|"$"|","
Unwise:"{"|"}"|"|"|"\"|""|"["|"]"|"`"
Delimes:"<"|">"|"#"|"%"|"<>"
給予的字符串如果已經是使用逃脫自負,則不會執行URL解析
參數:string=字符串
回傳值:字符串或invalid
例外狀況:如果字符串string含有非US-ASCII的字符,則回傳invalid
范例:var a=URL.escapeString
("http://w.a.c/dck?x=u007ef#crd");
// a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd"
unescapeString
程序:unescapeString(string)
說明:這個程序會將所給與string字符串之中每個可能是由URL.escapeString() 程序所產生的逃脫序列使用它所代表的字符加以替代。
參數:string=字符串
回傳值:字符串或invalid
例外狀況:如果字符串string含有非US-ASCII的字符,則回傳invalid
范例:var a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd";
var b=URL.unescapeString(a); //b
="http://w.a.c/dck?x=12#crd"
loadString
程序:loadString(url,contentType)
說明:回傳有所給予的絕對URL與contenttype所指出的內容。
如果內容格是不是下列法則所規范的話,則是錯誤的:
你只能界定一種內容格式,整個字符串必須和一種內容格式相符,而 且你不能有額外的前或后空格。
格式必須是正文,但次格式沒有限制,格式的開頭一定是"text/"。
這個程序的動作如下:
文件的內容會載入使用給予的contentType與url,其他所需的數形式有使用用戶界面的預設面。
如果載入成功而且回傳的內為格式與所給予的contentType相符,則內文會被轉換成字符串再回傳。
如果載入成功或回傳的內文格式不正確的話,則會回傳特定的錯誤碼。
參數:url=字符串
contentYype=字符串
回傳值:字符串、整數或invalid
例外狀況:如果載入失敗其回傳的錯誤碼和所使用的URL Scheme有關
如果使用HTTP或WSP架構,會回傳HTTP錯誤碼。
如果給予的contentType錯誤的話,則會回傳invalid
范例:var a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd";
var b=URL.unescapeString(a); //b
="http://w.a.c/dck?x=12#crd"
loadString
程序:loadString(url,contentType)
說明:回傳有所給予的絕對URL與contenttype所指出的內容。
如果內容格是不是下列法則所規范的話,則是錯誤的:
你只能界定一種內容格式,整個字符串必須和一種內容格式相符,而 且你不能有額外的前或后空格。
格式必須是正文,但次格式沒有限制,格式的開頭一定是"text/"。
這個程序的動作如下:
文件的內容會載入使用給予的contentType與url,其他內文所需的數形式有使用用戶界面的預設面。
如果載入成功而且回傳的內容為格式與所給予的contentType相符,則內文會被轉換成字符串再回傳。
如果載入成功或回傳的內文格式不正確的話,則會回傳特定的錯誤碼。
參數:url=字符串
contentYype=字符串
回傳值:字符串、整數或invalid
例外狀況:如果載入失敗其回傳的錯誤碼和所使用的URL Scheme有關
如果使用HTTP或WSP架構,會回傳HTTP錯誤碼。
如果給予的contentType錯誤的話,則會回傳invalid
范例:var myUrl="http://www.acme.com/vcards/myaddr.vcf";
myCard=URL.loadString(myUrl,"text/x-vcard");
6.6 WML瀏覽器函數庫
名稱:WML Brower
說明:這個函數庫所包含的程序是讓WML Script用來存取與WML相關的內文,這些程序不能有任何的副作用,并在下列的狀況下回傳invalid值。
系統不支持WML瀏覽器。
WML瀏覽器無法使用WML Script解譯器。
getVar
程序:getVar(name)
說明:回傳目前瀏覽器內文的所給予名稱name的變量值。
如果所指定的變量不存在,回傳一個空字符串。
變量名稱必須依照WML語法來使用。
參數:name=字符串
回傳值:字符串或invalid
例外狀況:如果變量名稱不合語法,則回傳invalid
范例:var a=WMLBrowser.getVar("name");
// a"Jon"或者變量的值
setVar
程序:setVar(name,value)
說明:在目前的瀏覽器之中,如果所給予名稱name的變量,它的值同給予的值value設定的一樣的話,回傳ture,否則回傳false。
變量名稱必須依照WML語法來使用。
變量值必須是合法的XML CD ATA
參數:name=字符串
value=字符串
回傳值:布爾值或invalid
例外狀況:如果變量名稱或它的值不合語法,則回傳invalid
范例:var a=WMLBrowser.setVar("name",Mary); // a=true
go
程序:go(url)
說明:將給予的url所標記的內文載入,這個程序予WML的GO動作意思相同。
如果所給予的url字空字符串(""),則不會載入任何內文。
go()與prev()函數庫程序會互相推翻,在回傳控制與WML瀏覽之前都可以加以調用多次。
只有最后的調用設定的會保持作用,如果最后的調用為go()或prev(),其所設定的url為空字符串(""),所有的要求都會被取消。
這個程序回傳空字符串。
參數:url=字符串
回傳值:字符串或invalid
例外狀況:無
范例:varcard="http://www.acme.com/loc/app.dck#start";WMLBrowser.go(card
)
prev
程序:prev()
說明:告訴WML瀏覽器回到先前的WML Card,這個程序的功能與WML中的prev動作一樣。
go()與prev()函數庫程序會互相推翻,在回傳控制與WML 瀏覽之前都可以加以調用多次。
只有最后的調用設定是會保持作用,如果最后的調用為go()或prew(),其所設定的url為空字符串(""),所有的要求都會被取消。
這個程序回傳空字符串。
參數:無
回傳值:字符串或invalid
例外狀況:無
范例:WMLBrowser.prev();
newContext
程序:newContext()
說明:將目前WML瀏覽器的內文清除并回傳一個空字符串,這個程序的公用與WML的NEWCONTEXT屬性一樣。
參數:無
回傳值:字符串或invalid
例外狀況:無
范例:WMLBrowser.newContext();
getCurrentCard
程序:getCurrentCard()
說明:回傳目前WML瀏覽器所處理card的最小相關URL,如果WML deck所包含目前程序的基本地址不同的話,則此程序會回傳絕對URL。
參數:無
回傳值:字符串或invalid
例外狀況:如果沒有目前的card,則回傳invalid。
范例:var a=WMLBrowser.getCurrentCard();// a="deck#input"
refresh
程序:refresh()
說明:強制WML瀏覽器更新它的內文并回傳一個空字符串,而用戶界面會加以更新以反應更新后的內容,這個程序與WML中的refresh功能一樣。
參數:無
回傳值:字符串或invalid
例外狀況:無
范例:WMLBrowser.setVar("name","Zorro");
WMLBrowser.refresh();
6.7 Dialog函數庫
名稱:對話
說明:這個函數庫包含典型的用戶界面程序。
prompt
程序:prompt(message,defaultInput)
說明:顯示給予的信息message與用戶輸入的提示符號,defaultInput參數包含了用戶輸入所需的初始內文,回傳用戶輸入。
參數:message=字符串
defaultInput=字符串
回傳值:字符串或invalid
例外狀況:無
范例:var a="09-555 3456"; var b=Dialogs.prompt("Phome number";a);
confirm
程序:confirm(message,ok,cancel)
說明:顯示所給予的信息message與兩個選項:ok與cancel,等待用戶選取其中一個,如果是ok則回傳false。
參數:message=字符串
ok=字符串
cancel=字符串
回傳值:布爾值invalid
例外狀況:無
范例:function onAbort(){return Dialogs.confirm("Are you sure?"),"Yes","No";};
alert
程序:alert(message)
說明:顯示所給予的信息message給用戶,等待用戶確定并回傳一個空字符串。
參數:message=字符串
回傳值:字符串或invalid
例外狀況:無
范例:function testValue(textElement){
if (String.length(textElement)>8) {
Dialogs.alert("Enter name <8 chars!");
};
};
6.8 函數庫總結函數庫
函數庫名稱: |
Lang |
Float |
String |
URL |
WML Browser |
Dialogs |
?
函數庫與他們的程序:
Lang函數庫 |
Abs |
Min |
Max |
ParseInt |
ParseFloat |
IsInt |
IsFloat |
MaxInt |
MinInt |
Float |
Exit |
Abort |
Random |
Seed |
CharacterSet |
?
Float 函數庫 |
Int |
Ploor |
Ceil |
Pow |
Round |
Sqrt |
MaxFloat |
MinFloat |
?
String 函數庫 |
Length |
IsEmpty |
CharAt |
SubString |
Pind |
Replace |
Elements |
ElementAt |
RemoveAt |
ReplaceAt |
InsertAt |
Squeeze |
Frim |
Compqre |
ToString |
format |
?
URL 函數庫 |
IsValid |
GetScheme |
GetHost |
GetPort |
GetPath |
GetParameters |
GetQuer |
GetFragment |
GetBase |
GetReferer |
Resolve |
EscapeString |
UnescapeString |
loadString |
?
WML Browse函數庫 |
Get Var |
SetVar |
Go |
Prev |
NewContext |
GetCurrentCard |
Refresh |
?
Dialogs? 函數庫 |
Prompt |
Confirm |
Alert |
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://m.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-07-05 15:47
zhyiwww 閱讀(406)
評論(0) 編輯 收藏 所屬分類:
wml