![ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)第3章解讀課件_第1頁](http://file4.renrendoc.com/view/445da04877097f211c167b02194560ad/445da04877097f211c167b02194560ad1.gif)
![ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)第3章解讀課件_第2頁](http://file4.renrendoc.com/view/445da04877097f211c167b02194560ad/445da04877097f211c167b02194560ad2.gif)
![ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)第3章解讀課件_第3頁](http://file4.renrendoc.com/view/445da04877097f211c167b02194560ad/445da04877097f211c167b02194560ad3.gif)
![ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)第3章解讀課件_第4頁](http://file4.renrendoc.com/view/445da04877097f211c167b02194560ad/445da04877097f211c167b02194560ad4.gif)
![ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)第3章解讀課件_第5頁](http://file4.renrendoc.com/view/445da04877097f211c167b02194560ad/445da04877097f211c167b02194560ad5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章VBScript語言3.1VBScript概述3.2VBScript基本元素3.3基本輸入輸出
3.4條件語句
3.5循環(huán)語句
3.6過程3.7文檔對象模型1/241第3章VBScript語言3.1VBScript概1第3章VBScript語言3.1VBScript概述3.1.1什么是VBScript VBScript是程序開發(fā)語言VisualBasic家族的最新成員,可以將靈活的腳本應(yīng)用于更廣泛的領(lǐng)域,包括MicrosoftInternetExplorer中的Web客戶端腳本和MicrosoftInternetInformationServer中的Web服務(wù)器端腳本。VBScript腳本語言有以下主要特點(diǎn):(1)易學(xué)易用。如果讀者已經(jīng)了解VisualBasic或VisualBasicforApplications,就會(huì)很快熟悉VBScript。(2)ActiveX腳本。VBScript使用ActiveX腳本與宿主應(yīng)用程序?qū)υ?;所用的腳本編寫引擎是vbscript.dll,該引擎能夠識(shí)別VBScript代碼;腳本編寫宿主是使用腳本編寫引擎的應(yīng)用程序,InternetExplorer就是宿主應(yīng)用程序的一個(gè)例子,它通過引擎來運(yùn)行腳本。(3)其他應(yīng)用程序和瀏覽器中的VBScript。開發(fā)者可以在其產(chǎn)品中免費(fèi)使用VBScript來實(shí)現(xiàn)程序。第3章目錄2/241第3章VBScript語言3.1VBScript概述2第3章VBScript語言3.1.2在HTML頁面中添加VBScript代碼 通常將VBScript腳本代碼放在HEAD部分中,以使所有腳本代碼集中放置,這樣能確保在BODY部分調(diào)用代碼之前讀取并解碼所有腳本代碼。在HTML頁面中添加VBScript腳本代碼時(shí),應(yīng)以<SCRIPT>標(biāo)記開始,而以</SCRIPT>標(biāo)記結(jié)束,基本語法格式為:
<SCRIPTLANGUAGE=“腳本語言名稱” [EVENT="事件名稱"][FOR="對象名稱"]>
<!-- 腳本代碼 --> </SCRIPT> <SCRIPT>標(biāo)記具有以下三個(gè)屬性:(1)LANGUAGE:指定腳本代碼所使用的腳本語言。對于InternetExplorer瀏覽器來說,該屬性的取值可以是“VBScript”或“JScript”,前者也可以簡寫為“VBS”。(2)EVENT:指定與腳本代碼相關(guān)聯(lián)的事件。(3)FOR:指定與事件相關(guān)聯(lián)的對象?!纠?.1】演示第3章目錄3/241第3章VBScript語言3.1.2在HTML頁面中3第3章VBScript語言3.2VBScript基本元素3.2.1數(shù)據(jù)類型 在VBScript語言中只有一種數(shù)據(jù)類型,即Variant,這種數(shù)據(jù)類型可以包含不同類別的信息,它也是VBScript中所有函數(shù)的返回值的數(shù)據(jù)類型。Variant包含的數(shù)值信息類型稱為子類型,包括:Empty: 未初始化的Variant。Null: 不包含任何有效數(shù)據(jù)的VariantBoolean: 包含True或FalseByte : 包含0到255之間的整數(shù)Integer: 包含-32,768到32,767之間的整數(shù)Currency: -922,337,203,685,477.5808到922,337,203,685,477.5807Long: 包含-2,147,483,648到2,147,483,647之間的整數(shù)Single: 包含單精度浮點(diǎn)數(shù)Double 包含雙精度浮點(diǎn)數(shù)Date(Time): 含表示日期的數(shù)字String: 包含變長字符串,最大長度可為20億個(gè)字符Object: 包含對象Error: 包含錯(cuò)誤號第3章目錄4/241第3章VBScript語言3.2VBScript基本4第3章VBScript語言3.2.2VBScript常量1.普通常量 普通常量分為字符串常量和數(shù)值常量兩種。 字符串常量簡稱字符串,它由一對雙引號括起來的字符序列所組成,其中可以包含字母、漢字、數(shù)字,空格以及標(biāo)點(diǎn)符號等,長度不超過20億個(gè)字符。例如,“ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)”,“MicrosoftExplorer瀏覽器”。 數(shù)值常量分為整型數(shù)、長整型數(shù)和浮點(diǎn)數(shù)。整型數(shù)和長整型數(shù)都可以用十進(jìn)制、十六進(jìn)制和八進(jìn)制三種形式來表示。使用十六進(jìn)制數(shù)時(shí),應(yīng)在數(shù)字前面加上&H前綴;使用八進(jìn)制數(shù)時(shí),應(yīng)在數(shù)字前面加上&O前綴。對于長整型數(shù),使用十六進(jìn)制或八進(jìn)制形式表示時(shí),還要在數(shù)字后面加上后綴&。浮點(diǎn)數(shù)也稱為實(shí)型數(shù),分為單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)。浮點(diǎn)數(shù)可以用小數(shù)形式表示,也可以用科學(xué)記數(shù)法表示。2.符號常量 符號常量是用一個(gè)標(biāo)識(shí)符表示的常量,用于代替數(shù)字或字符串,其值從發(fā)生不改變。在VBScript中,符號常量分為預(yù)定義符號常量和用戶自定義常量。 VBScript提供了許多預(yù)定義符號常量,在編寫腳本代碼時(shí)無須聲明即可直接使用。例如,vbCrLf表示回車符和換行符的組合,vbGreen表示綠色的數(shù)值。第3章目錄5/241第3章VBScript語言3.2.2VBScript5第3章VBScript語言3.2.3VBScript變量1.聲明變量 在VBScript中,通常使用Dim語句顯式聲明變量并分配存儲(chǔ)空間,語法格式如下:
Dim變量名[,變量名]例如,下面的兩個(gè)語句分別聲明了一個(gè)變量和四個(gè)變量:
DimUserName DimTop,Bottom,Left,Right此外,也可以通過直接在腳本中使用變量名這種方式隱式聲明變量。但這通常不是一個(gè)好習(xí)慣,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行腳本時(shí)出現(xiàn)意外的結(jié)果。若要強(qiáng)制顯式聲明所有變量,可以在腳本程序的開頭處使用下面的語句:OptionExplicit2.命名規(guī)則 每一個(gè)變量都必須用一個(gè)標(biāo)識(shí)符來作為其名稱。變量命名必須遵循VBScript的標(biāo)準(zhǔn)命名規(guī)則。變量的命名規(guī)則為:第一個(gè)字符必須是字母;不能包含嵌入的句點(diǎn)(.);長度不能超過255個(gè)字符;在被聲明的作用域內(nèi)必須唯一;不能與VBScript的關(guān)鍵詞相同。第3章目錄6/241第3章VBScript語言3.2.3VBScript6第3章VBScript語言3.變量的作用域與存活期 變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時(shí)變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被腳本中所有過程所識(shí)別,稱為腳本級變量,具有腳本級作用域。 變量存在的時(shí)間稱為存活期。腳本級變量的存活期從被聲明的一刻起,直到腳本運(yùn)行結(jié)束。對于過程級變量,其存活期僅是該過程運(yùn)行的時(shí)間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間。在不同過程中可以使用同名的局部變量,這是因?yàn)槊總€(gè)局部變量只被聲明它的過程識(shí)別。4.給變量賦值 在VBScript中,可以通過賦值語句指定變量的值,此時(shí)變量位于等號的左邊,要賦的值位于等號的右邊,該值可以是任何數(shù)值、字符串、常數(shù)或表達(dá)式。例如: UserName="張三豐" BirthDate=#1972-5-28# WeekWage=500第3章目錄7/241第3章VBScript語言3.變量的作用域與存活期第37第3章VBScript語言5.標(biāo)量變量和數(shù)組變量 只包含一個(gè)值的變量稱為標(biāo)量變量。包含一系列值的變量稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時(shí)變量名后面帶有括號()。下面的語句聲明了一個(gè)一維數(shù)組:
DimA(10) 雖然括號中顯示的數(shù)字是10,但由于在VBScript中所有數(shù)組都是基于0的,所以這個(gè)數(shù)組實(shí)際上包含11個(gè)元素。在基于0的數(shù)組中,數(shù)組元素的數(shù)目總是括號中顯示的數(shù)目加1。這種數(shù)組被稱為固定大小的數(shù)組,簡稱為定長數(shù)組。 在數(shù)組中,使用數(shù)組名和索引來引用數(shù)組的每個(gè)元素,語法格式如下:
數(shù)組名(索引值) 下面的賦值語句將數(shù)據(jù)賦給數(shù)組元素,或者將數(shù)組元素的值賦給變量:
A(0)=256:A(1)=368:A(2)=121:SomeVariable=A(8) 數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為60。聲明多維數(shù)組時(shí),使用逗號分隔括號中每個(gè)表示數(shù)組大小的數(shù)字。例如,下面語句聲明了一個(gè)有6行和11列的二維數(shù)組,其名稱為MyTable:
DimMyTable(5,10) 聲明二維數(shù)組時(shí),括號中的第一個(gè)數(shù)字表示行的最大索引值,第二個(gè)數(shù)字表示列的最大索引值。第3章目錄8/241第3章VBScript語言5.標(biāo)量變量和數(shù)組變量第3章8第3章VBScript語言6.動(dòng)態(tài)數(shù)組 動(dòng)態(tài)數(shù)組是在運(yùn)行腳本時(shí)大小發(fā)生變化的數(shù)組。對動(dòng)態(tài)數(shù)組的最初聲明可以使用Dim語句或ReDim語句來實(shí)現(xiàn),但括號中不能包含任何數(shù)字。例如:
DimMyArray() ReDimAnotherArray() 若要使用動(dòng)態(tài)數(shù)組,必須隨后使用ReDim確定維數(shù)和每一維的大小。例如,下面的ReDim語句將動(dòng)態(tài)數(shù)組的初始大小設(shè)置為25,而后面的ReDim語句將數(shù)組的大小重新調(diào)整為30,同時(shí)使用Preserve關(guān)鍵字在重新調(diào)整大小時(shí)保留數(shù)組的內(nèi)容。
ReDimMyArray(25) …… ReDimPreserveMyArray(30) 重新調(diào)整動(dòng)態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應(yīng)注意,將數(shù)組的大小調(diào)小時(shí),將會(huì)丟失被刪除元素的數(shù)據(jù)。第3章目錄9/241第3章VBScript語言6.動(dòng)態(tài)數(shù)組第3章目錄9/29第3章VBScript語言3.2.4VBScript運(yùn)算符1.算術(shù)運(yùn)算符VBScript提供了九個(gè)算術(shù)運(yùn)算符,用來執(zhí)行簡單的算術(shù)運(yùn)算。(1)求冪運(yùn)算符(^): result=number^exponent(2)乘法運(yùn)算符(*): result=number1*number2(3)除法運(yùn)算符(/): result=number1/number2(4)整除運(yùn)算符(\): result=number1\number2(5)求余運(yùn)算符(Mod): result=number1Modnumber2(6)加法運(yùn)算符(+): result=expression1+expression2(7)減法運(yùn)算符(-):
result=number1-number2(減法) -number(負(fù)號)第3章目錄10/241第3章VBScript語言3.2.4VBScript10第3章VBScript語言2.連接運(yùn)算符 連接運(yùn)算符(&)強(qiáng)制兩個(gè)表達(dá)式進(jìn)行字符串連接,語法格式如下:
result=expression1&expression2 其中result為任意變量,expression1和expression2都是任意表達(dá)式。當(dāng)任一expression不是字符串時(shí),它將被轉(zhuǎn)換為String子類型。如果兩個(gè)表達(dá)式都是Null,則result也為Null。然而,如果僅有一個(gè)expression為Null,則它和其他表達(dá)式連接時(shí),按零長度字符串("")處理。任何表達(dá)式為Empty時(shí)也按零長度字符串處理。第3章目錄11/241第3章VBScript語言2.連接運(yùn)算符第3章目錄1111第3章VBScript語言3.比較運(yùn)算符比較運(yùn)算符用于比較表達(dá)式,包括: <(小于) <=(小于或等于) >(大于) >=(大于或等于) =(等于) <>(不等于)比較表達(dá)式的規(guī)則或結(jié)果 若兩個(gè)表達(dá)式都是數(shù)值,則執(zhí)行數(shù)值比較;若兩個(gè)表達(dá)式都是字符串,則執(zhí)行字符串比較;若一個(gè)表達(dá)式是數(shù)值而另一個(gè)是字符串,則數(shù)值表達(dá)式小于字符串表達(dá)式;若一個(gè)表達(dá)式是數(shù)值而另一個(gè)是字符串,則數(shù)值表達(dá)式小于字符串表達(dá)式;若一個(gè)表達(dá)式是Empty而另一個(gè)是數(shù)值,則執(zhí)行數(shù)值比較,使用0作為Empty表達(dá)式;若一個(gè)表達(dá)式是Empty而另一個(gè)是字符串,則執(zhí)行字符串比較,使用零長度字符串(“”)為Empty表達(dá)式;若兩個(gè)表達(dá)式都是Empty,則表達(dá)式相等。第3章目錄12/241第3章VBScript語言3.比較運(yùn)算符第3章目錄1212第3章VBScript語言4.邏輯運(yùn)算符(1)Not運(yùn)算符:對表達(dá)式執(zhí)行邏輯非運(yùn)算,語法格式如下:
result=Notexpression(2)And運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“與”運(yùn)算,語法格式如下:
result=expression1Andexpression2And運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(3)Or運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“或”運(yùn)算,語法格式如下:
result=expression1Orexpression2Or運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(4)Xor運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“異或”運(yùn)算,語法格式如下:
result=expression1Xorexpression2Xor運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(5)Eqv運(yùn)算符:執(zhí)行兩個(gè)表達(dá)式的邏輯等價(jià)運(yùn)算,語法格式為:
result=expression1Eqvexpression2Eqv運(yùn)算符還可以執(zhí)行兩個(gè)數(shù)值表達(dá)式相應(yīng)位的逐位比較。(6)Imp運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯蘊(yùn)涵運(yùn)算,語法格式如下:
result=expression1Impexpression2Imp運(yùn)算符還可以執(zhí)行兩個(gè)數(shù)值表達(dá)式相應(yīng)位的逐位比較。第3章目錄13/241第3章VBScript語言4.邏輯運(yùn)算符第3章目錄1313第3章VBScript語言5.運(yùn)算符優(yōu)先級 當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),將按預(yù)定順序計(jì)算每一部分,這個(gè)順序被稱為運(yùn)算符優(yōu)先級。使用括號可以越過這種優(yōu)先級順序,強(qiáng)制首先計(jì)算表達(dá)式的某些部分。運(yùn)算時(shí),總是先執(zhí)行括號中的運(yùn)算符,然后再執(zhí)行括號外的運(yùn)算符。但在括號中仍要遵循標(biāo)準(zhǔn)運(yùn)算符優(yōu)先級。
當(dāng)表達(dá)式包含多種運(yùn)算符時(shí),首先計(jì)算算術(shù)運(yùn)算符,然后計(jì)算比較運(yùn)算符,最后計(jì)算邏輯運(yùn)算符。所有比較運(yùn)算符的優(yōu)先級相同,即按照從左到右的順序計(jì)算比較運(yùn)算符。算術(shù)運(yùn)算符、比較運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級在表3.14中列出。第3章目錄14/241第3章VBScript語言5.運(yùn)算符優(yōu)先級第3章目錄114第3章VBScript語言3.3基本輸入輸出3.3.1基本語句 賦值語句將表達(dá)式的值賦給變量或?qū)傩?。如果要將對象引用賦給變量或?qū)傩裕瑒t不能使用賦值語句,而應(yīng)使用Set語句,其語法格式如下:
Setobjectvar={objectexpression|Newclassname|Nothing} 其中objectvar用于指定變量或?qū)傩缘拿Q,objectexpression是由對象名稱、另一個(gè)已聲明為相同對象類型的變量或返回相同對象類型的對象的函數(shù)或方法組成的表達(dá)式,New關(guān)鍵字用于創(chuàng)建新的類的實(shí)例,classname是類名,Nothing用于停止objectvar與任何指定對象或類的關(guān)聯(lián)。 使用注釋語句添加說明性文字,語法格式如下:
'注釋文字 編寫VBScript腳本代碼時(shí),通常是在一行上寫一個(gè)語句。但有些語句很短,可將多個(gè)語句寫在同一行中,并使用冒號(:)來分隔各個(gè)語句:
X=T:T=Y:Y=T '交換變量X和Y的內(nèi)容 對于比較長的語句,可以使用續(xù)行符將其分成多行,續(xù)行符由一個(gè)空格和一個(gè)下劃線符號組成。通過使用續(xù)行符,可以在第二個(gè)物理行上繼續(xù)上一個(gè)邏輯行上的內(nèi)容。例如:
msg="白日依日盡,黃河入海流。"&vbCrLf&_ "欲窮千里目,更上一層樓。"第3章目錄15/241第3章VBScript語言3.3基本輸入輸出第3章目15第3章VBScript語言3.3.2MsgBox函數(shù) MsgBox函數(shù)在對話框中顯示消息,等待用戶單擊按鈕,并返回一個(gè)值指示用戶單擊的按鈕,語法格式如下:
MsgBox(prompt[,buttons][,title][,helpfile,context]) 其中prompt參數(shù)是顯示在對話框中的字符串表達(dá)式,其最大長度大約是1024個(gè)字符;buttons是一個(gè)數(shù)值表達(dá)式,用于指定顯示按鈕的數(shù)目和類型、使用的圖標(biāo)樣式,其默認(rèn)值為0;title是顯示在對話框標(biāo)題欄中的字符串表達(dá)式;helpfile是字符串表達(dá)式,用于標(biāo)識(shí)為對話框提供上下文相關(guān)幫助的幫助文件;context是數(shù)值表達(dá)式,用于標(biāo)識(shí)由幫助文件的作者指定給某個(gè)幫助主題的上下文編號?!纠?.2】演示
第3章目錄16/241第3章VBScript語言3.3.2MsgBox函數(shù)16第3章VBScript語言3.3.3InputBox函數(shù) InputBox函數(shù)在對話框中顯示提示,等待用戶輸入文本或單擊按鈕,并返回文本框內(nèi)容,語法格式如下:
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context]) 其中prompt參數(shù)是顯示在對話框中的字符串表達(dá)式,其最大長度大約是1024個(gè)字符;title是顯示在對話框標(biāo)題欄中的字符串表達(dá)式;default是顯示在文本框中的字符串表達(dá)式,在沒有其他輸入時(shí)作為默認(rèn)的響應(yīng)值,如果省略default,則文本框?yàn)榭?;xpos是數(shù)值表達(dá)式,用于指定對話框的左邊緣與屏幕左邊緣的水平距離(單位為緹),如果省略xpos,則對話框會(huì)在水平方向居中;ypos也是數(shù)值表達(dá)式,用于指定對話框的上邊緣與屏幕上邊緣的垂直距離(單位為緹),如果省略ypos,則對話框顯示在屏幕垂直方向距下邊緣大約三分之一處;helpfile和context參數(shù)與MsgBox函數(shù)中的相應(yīng)參數(shù)意義相同。 如果用戶單擊“確定”按鈕或按下Enter鍵,則InputBox函數(shù)返回文本框中的內(nèi)容。如果用戶單擊“取消”按鈕或按下Esc鍵,則InputBox函數(shù)返回一個(gè)零長度字符串("")?!纠?.3】演示第3章目錄17/241第3章VBScript語言3.3.3InputBox17第3章VBScript語言3.4條件語句3.4.1If...Then...Else語句 If...Then...Else語句簡稱If語句,用于計(jì)算條件是否為True或False,并且根據(jù)計(jì)算結(jié)果指定要執(zhí)行的語句。If...Then...Else語句有兩種形式:即單行形式和塊形式。1.If語句的單行形式 對于If語句的單行形式,可以將其語法格式表示如下:
IfconditionThenstatements[Elseelsestatements] 其中condition是一個(gè)數(shù)值或字符串表達(dá)式,其運(yùn)算結(jié)果是True或False,如果condition為Null,則condition被視為False;condition也可以是形如TypeOfobjectnameIsobjecttype的表達(dá)式,其中objectname是任何對象的引用,而objecttype則是任何有效的對象類型,如果objectname是objecttype所指定的一種對象類型,則表達(dá)式為True,否則為False。statements和elsestatements是一條語句或以冒號分開的多條語句。 當(dāng)未用Else子句時(shí),如果condition為True,則執(zhí)行statements,否則執(zhí)行下一條語句;當(dāng)使用Else子句時(shí),如果condition為True,則執(zhí)行statements,否則執(zhí)行elsestatements。第3章目錄18/241第3章VBScript語言3.4條件語句第3章目錄118第3章VBScript語言2.If語句的塊形式 語法格式表示如下:
IfconditionThen [statements] [ElseIfcondition-nThen [elseifstatements]] …… [Else [elsestatements]] EndIf 其中condition、condition-n的意義同單行形式中的condition,statements、elseifstatements和elsestatements都是一條語句或以冒號分開的多條語句。 當(dāng)程序運(yùn)行到塊形式時(shí),將測試condition。如果condition為True,則執(zhí)行Then之后的語句。如果condition為False,則每個(gè)ElseIf部分的條件表達(dá)式(如果有的話)會(huì)依次計(jì)算并加以測試。當(dāng)找到某個(gè)為True的條件時(shí),則其相關(guān)的Then之后的語句會(huì)被執(zhí)行。如果沒有任何一個(gè)ElseIf語句中的條件是True或沒有使用ElseIf子句,則將執(zhí)行Else之后的語句。執(zhí)行Then或Else之后的語句以后,將繼續(xù)執(zhí)行EndIf之后的語句?!纠?.4】演示第3章目錄19/241第3章VBScript語言2.If語句的塊形式第3章目19第3章VBScript語言3.4.2SelectCase語句
SelectCasetestexpression [Caseexpressionlist-n [statements-n]] ……. [CaseElseexpressionlist-n [elsestatements-n]] EndSelect 其中testexpression是任意數(shù)值或字符串表達(dá)式,expressionlist-n是一個(gè)或多個(gè)表達(dá)式的分界列表。statements-n是當(dāng)testexpression與expressionlist-n中的任意部分匹配時(shí)執(zhí)行的一條或多條語句。elsestatements-n是當(dāng)testexpression與Case子句的任何部分不匹配時(shí)執(zhí)行的一條或多條語句。 如果testexpression與任何Caseexpressionlist表達(dá)式匹配,則執(zhí)行此Case子句與下一個(gè)Case子句之間的語句,對于最后的子句,則會(huì)執(zhí)行該子句到EndSelect之間的語句,然后控制權(quán)會(huì)轉(zhuǎn)到EndSelect之后的語句。如果testexpression與多個(gè)Case子句中的expressionlist表達(dá)式匹配,則只有第一個(gè)匹配表達(dá)式后的語句被執(zhí)行。CaseElse用于指示若在testexpression和任何其他Case選項(xiàng)的expressionlist之間未找到匹配,則執(zhí)行elsestatements。如果沒有Caseexpressionlist與testexpression匹配且無CaseElse語句,則繼續(xù)執(zhí)行EndSelect之后的語句?!纠?.5】演示第3章目錄20/241第3章VBScript語言3.4.2SelectC20第3章VBScript語言3.5循環(huán)語句3.5.1Do...Loop語句第一種語法格式: 第二種語法格式:Do[{While|Until}condition] Do[statements] [statements][ExitDo] [ExitDo][statements] [statements]Loop Loop[{While|Until}condition] 在Do...Loop語句的語法格式中,condition是數(shù)值或字符串表達(dá)式,其值為True或False,如果condition為Null,則condition被當(dāng)作False。statements是當(dāng)condition為True時(shí)被重復(fù)執(zhí)行的一個(gè)或多個(gè)語句。 While關(guān)鍵字用于檢查Do...Loop語句中的條件。有兩種方式檢查條件:在進(jìn)入循環(huán)之前檢查條件;或者在循環(huán)至少運(yùn)行完一次之后檢查條件。只要條件為True,就會(huì)進(jìn)行循環(huán)。一旦條件變成False,則退出循環(huán)。 Until關(guān)鍵字也用于檢查Do...Loop語句中的條件。有兩種方式檢查條件:在進(jìn)入循環(huán)之前檢查條件;或者在循環(huán)至少運(yùn)行完一次之后檢查條件。只要條件為False,就會(huì)進(jìn)行循環(huán)。一旦條件變成True,則退出循環(huán)。 【例3.6】演示第3章目錄21/241第3章VBScript語言3.5循環(huán)語句第3章目錄221第3章VBScript語言3.5.2While...Wend語句 While...Wend語句當(dāng)指定的條件為True時(shí)執(zhí)行一系列的語句,語法格式如下:
Whilecondition [statements] Wend 其中condition是數(shù)值或字符串表達(dá)式,其計(jì)算結(jié)果為True或False。如果condition為Null,則condition被當(dāng)作False。statements在條件為True時(shí)執(zhí)行的一條或多條語句。 如果condition為True,則statements中所有Wend語句之前的語句都將被執(zhí)行,然后控制權(quán)返回到While語句,并且重新檢查condition。如果condition仍為True,則重復(fù)執(zhí)行上面的過程。如果不為True,則從Wend語句之后的語句處繼續(xù)執(zhí)行程序。 While...Wend循環(huán)可以是多層嵌套結(jié)構(gòu)。每個(gè)Wend與最近的While語句對應(yīng)。第3章目錄22/241第3章VBScript語言3.5.2While...22第3章VBScript語言3.5.3For...Next語句
Forcounter=startToend[Stepstep] [statements] [ExitFor] [statements] Next 其中counter是用作循環(huán)計(jì)數(shù)器的數(shù)值變量,不能是數(shù)組元素;start和end分別是counter的初值和終值;step是counter的步長,其默認(rèn)值為1;statements是For和Next之間的一條或多條語句,將被執(zhí)行指定次數(shù)。 step參數(shù)可以是正數(shù)或負(fù)數(shù)。step參數(shù)值決定循環(huán)的執(zhí)行情況:當(dāng)step參數(shù)是正數(shù)或0時(shí),若counter<=end,則執(zhí)行循環(huán);當(dāng)step參數(shù)是負(fù)數(shù)時(shí),若counter>=end,則執(zhí)行循環(huán)。 當(dāng)循環(huán)啟動(dòng)并且所有循環(huán)中的語句都執(zhí)行后,step值被加到counter中。這時(shí),或者循環(huán)中的語句再次執(zhí)行(基于循環(huán)開始執(zhí)行時(shí)同樣的測試),或者退出循環(huán)并從Next語句之后的語句處繼續(xù)執(zhí)行?!纠?.7】演示第3章目錄23/241第3章VBScript語言3.5.3For...Ne23第3章VBScript語言3.5.4ForEach...Next循環(huán)
ForEachelementIngroup [statements] [ExitFor] [statements] Next[element] 其中element用來枚舉集合或數(shù)組中所有元素的變量,group是對象集合或數(shù)組的名稱,statements是對于group中的每一項(xiàng)執(zhí)行的一條或多條語句。如果group中有至少一個(gè)元素,就會(huì)進(jìn)入ForEach塊執(zhí)行。一旦進(jìn)入循環(huán),便首先對group中第一個(gè)元素執(zhí)行循環(huán)中的所有語句。只要group中還有其他元素,就會(huì)對每個(gè)元素執(zhí)行循環(huán)中的語句。當(dāng)group中沒有其他元素時(shí)退出循環(huán),然后從Next語句之后的語句處繼續(xù)執(zhí)行??梢詫⒁粋€(gè)ForEach...Next循環(huán)放置在另一個(gè)之中,組成嵌套式ForEach...Next循環(huán)。但是每個(gè)循環(huán)的element必須是唯一的。如果省略Next語句中的element,則程序仍會(huì)像已包含它一樣繼續(xù)執(zhí)行。如果Next語句在相應(yīng)的For語句之前出現(xiàn),則會(huì)產(chǎn)生錯(cuò)誤?!纠?.8】演示第3章目錄24/241第3章VBScript語言3.5.4ForEach24第3章VBScript語言3.6過程3.6.1Sub過程 Sub過程是沒有返回值的過程,可以用Sub語句來聲明其名稱、參數(shù)以及構(gòu)成其主體的代碼,語法格式如下:
[Public|Private]Subname[(arglist)] [statements] [ExitSub] [statements] EndSub 其中Public表示Sub過程可以被所有腳本中的所有其他過程訪問;Private表示Sub過程只可以被聲明該過程的腳本中的其他過程訪問;name指定Sub過程的名稱,遵循標(biāo)準(zhǔn)變量命名約定;statements在Sub過程主體內(nèi)所執(zhí)行的任何語句組;使用ExitSub語句可以立即從Sub過程中退出,程序繼續(xù)執(zhí)行調(diào)用Sub過程的語句之后的語句;arglist代表在調(diào)用時(shí)要傳遞給Sub過程的參數(shù)的變量列表,用逗號隔開多個(gè)變量。第3章目錄25/241第3章VBScript語言3.6過程第3章目錄225第3章VBScript語言過程的調(diào)用 使用Call語句可以將控制權(quán)傳遞給Sub或Function過程,語法為:
[Call]name[argumentlist] 其中Call是可選關(guān)鍵字,如果指定了此關(guān)鍵字,則必須用括號把a(bǔ)rgumentlist括起來;name是必選的,用于指定要調(diào)用的過程名;argumentlist是可選的,給出傳遞給過程的變量、數(shù)組或表達(dá)式列表,用逗號分隔每一項(xiàng)。 在調(diào)用過程時(shí),不必使用Call關(guān)鍵字。然而,如果使用Call關(guān)鍵字調(diào)用要求參數(shù)的過程,則必須用括號將argumentlist括起來。如果省略Call關(guān)鍵字,則必須同時(shí)省略argumentlist參數(shù)兩邊的括號。使用Call語法調(diào)用內(nèi)部函數(shù)或使用用戶自定義函數(shù),函數(shù)返回值都會(huì)被放棄。 當(dāng)把控制權(quán)傳遞給過程時(shí),會(huì)把Sub和EndSub之間的所有語句執(zhí)行一遍,然后從調(diào)用該過程的語句的下一條語句處繼續(xù)執(zhí)行。如果在過程中執(zhí)行了ExitSub語句,則會(huì)立即從過程中退出,并繼續(xù)執(zhí)行過程調(diào)用語句的下一條語句。ExitSub語句通常是與判定結(jié)構(gòu)一起使用的,當(dāng)某個(gè)條件成立時(shí)才退出過程?!纠?.9】演示第3章目錄26/241第3章VBScript語言過程的調(diào)用第3章目錄26/2426第3章VBScript語言3.6.2Function過程 Function過程擁有返回值,用Function語句來聲明其名稱、參數(shù)以及構(gòu)成其主體的代碼,語法為:
[Public|Private]Functionname[(arglist)] …… name=expression EndFunction 其中Public表示Function過程可以被所有腳本中的所有其他過程訪問;Private表示Function過程只能被聲明它的腳本中的其他過程訪問;name指定Function過程的名稱,遵循標(biāo)準(zhǔn)的變量命名規(guī)則;statements在Function過程的主體中執(zhí)行的任意語句組;expression給出Function過程的返回值;使用ExitFunction語句可以從Function過程中立即退出,程序繼續(xù)執(zhí)行調(diào)用Function過程的語句之后的語句;arglist代表調(diào)用時(shí)要傳遞給Function過程的參數(shù)的變量列表。 【例3.10】演示第3章目錄27/241第3章VBScript語言3.6.2Function27第3章VBScript語言3.6.3常用內(nèi)部函數(shù) VBScript提供了大量的內(nèi)部函數(shù),可以在腳本代碼中直接使用這些函數(shù)。下面給出幾個(gè)常用內(nèi)部函數(shù):Abs 返回?cái)?shù)的絕對值A(chǔ)rray 返回含有數(shù)組的變體Asc 返回字符串首字母的ANSI字符碼Atn 返回?cái)?shù)值的反正切CBool 返回已被轉(zhuǎn)換為Boolean子類型的變體的表達(dá)式CByte 返回已被轉(zhuǎn)換為字節(jié)子類型的變體的表達(dá)式CCur 返回已被轉(zhuǎn)換為貨幣子類型的變體的表達(dá)式CDate 返回已被轉(zhuǎn)換為日期子類型的變體的表達(dá)式CDbl 返回已被轉(zhuǎn)換為雙精度子類型的變體的表達(dá)式
表3.17列出了常用的內(nèi)部函數(shù)。若要了解這些函數(shù)的詳細(xì)用法,請查閱VBScript語言參考。第3章目錄28/241第3章VBScript語言3.6.3常用內(nèi)部函數(shù)第328第3章VBScript語言3.6.4響應(yīng)HTML事件 HTML文檔中的每個(gè)元素都是一個(gè)擁有屬性、方法和事件的對象,稱為文檔對象。當(dāng)觸發(fā)一個(gè)文檔對象的某個(gè)事件時(shí),該對象能夠按照某種方式做出響應(yīng),但具體的響應(yīng)過程需要由程序員編寫腳本代碼來實(shí)現(xiàn),這種過程稱為事件過程。1.基本事件列表onLoad:當(dāng)Web瀏覽器加載窗口或框架集時(shí)發(fā)生。onUnLoad:當(dāng)Web瀏覽器從窗口或框架集卸載一個(gè)文檔時(shí)發(fā)生。onClick:當(dāng)一個(gè)元素被鼠標(biāo)單擊時(shí)發(fā)。onDbClick:當(dāng)一個(gè)元素被鼠標(biāo)雙擊時(shí)發(fā)生。onMouseDown: 當(dāng)在一個(gè)元素上方鼠標(biāo)被按下時(shí)發(fā)生。onMouseUp:在一個(gè)元素上方鼠標(biāo)被釋放時(shí)發(fā)生。onMouseOver:當(dāng)鼠標(biāo)指針從一個(gè)元素上方經(jīng)過時(shí)發(fā)生。onMouseMove:當(dāng)鼠標(biāo)指針在一個(gè)元素上方移動(dòng)時(shí)發(fā)生。onMouseOut:當(dāng)鼠標(biāo)指針離開一個(gè)元素時(shí)發(fā)生。onFocus:當(dāng)一個(gè)元素接收到來自鼠標(biāo)或鍵盤的焦點(diǎn)時(shí)發(fā)生。 表3.18列出了基本的HTML事件。第3章目錄29/241第3章VBScript語言3.6.4響應(yīng)HTML事件29第3章VBScript語言2.事件過程的調(diào)用方式 在VBScript中,可以通過多種方式來調(diào)用事件過程。下面介紹常用的四種方法。(1)通過名稱調(diào)用事件過程:在<SCRIPT>標(biāo)記內(nèi)用Sub語句來定義事件過程,并且要求過程名稱必須由控件名稱、下劃線(_)以及事件名稱組合而成。例如,單擊名稱為Button1的按鈕時(shí),會(huì)自動(dòng)調(diào)用Button1_onClick事件過程。(2)通過FOR/EVNET屬性調(diào)用事件過程:設(shè)置<SCRIPT>標(biāo)記的FOR屬性以指定HTML頁面中的一個(gè)對象,并通過EVENT屬性指定該對象的一個(gè)事件。例如:(3)通過控件的屬性調(diào)用事件處理過程:在<SCRIPT>標(biāo)記中定義一個(gè)通用的Sub過程,并通過控件的相關(guān)屬性來調(diào)用該過程。(4)在標(biāo)記中直接編寫腳本語句:若事件過程比較簡單,則可以在定義元素的標(biāo)記中直接編寫腳本語句。若要包含多條語句,用冒號(:)分開各個(gè)語句。
【例3.11】演示第3章目錄30/241第3章VBScript語言2.事件過程的調(diào)用方式第3章30第3章VBScript語言3.7文檔對象模型3.7.1文檔對象概述 文檔對象模型是可以被任何腳本引擎訪問的對象的集合,它提供了對Web瀏覽器的訪問。但VBScript語言沒有其對象模型,它使用MicrosoftInternetExploer瀏覽器的對象模型,這是一種具有層次結(jié)構(gòu)的對象模型,其中每個(gè)對象都有屬性、方法和事件,而屬性本身也是對象,它又包含屬性、方法和事件。 在文檔對象模型中,最頂層的對象是Window對象,它表示瀏覽器窗口,可以通過它來獲取瀏覽器窗口的狀態(tài)信息、訪問HTML頁面元素并處理在瀏覽器窗口中發(fā)生的事件。 在瀏覽器窗口中可以包含框架,為了訪問指定框架中的文檔,必須先訪問相應(yīng)的Frame對象,然后才能訪問該框架內(nèi)的文檔對象。 Document對象是Window對象的一個(gè)重要屬性,它表示在瀏覽器窗口中顯示的HTML文檔,該對象本身又有自己的屬性,其中Link、Anchor和Form屬性也是對象。第3章目錄31/241第3章VBScript語言3.7文檔對象模型第3章目31第3章VBScript語言3.7.2Window對象 Window對象代表在瀏覽器中打開的窗口,它是文檔對象層次結(jié)構(gòu)中位于最上層的對象,所有其他對象都可以視為Window對象的屬性。若文檔定義了一個(gè)或多個(gè)框架,則瀏覽器將為最初的文檔創(chuàng)建一個(gè)Window對象,然后為每個(gè)框架創(chuàng)建一個(gè)Window對象。1.Window對象的屬性(1)Name屬性:用于指定窗口的名稱,可以使用A標(biāo)記的TARGET屬性指定窗口的名稱,也可以使用Open方法打開一個(gè)指定名稱的新窗口。(2)DefaultStatus屬性:用于設(shè)置或讀取瀏覽器窗口狀態(tài)欄中的默認(rèn)顯示信息。例如,可以在Window對象的OnLoad事件過程中編寫以下語句:
<BODYonLoad="Window.DefaultStatus='歡迎您光臨本站點(diǎn)!'"LANGUAGE="VBScript">(3) Status屬性:用于設(shè)置或讀取瀏覽器窗口狀態(tài)欄中顯示的臨時(shí)信息。例如,可以在某張圖片的OnMouseOver事件過程中編寫以下代碼:
Window.Status="這是一張圖片。"第3章目錄32/241第3章VBScript語言3.7.2Window對象32第3章VBScript語言2.Window對象的方法(1)Alert方法:用來顯示一個(gè)警告對話框。(2)Confirm方法:用來顯示一個(gè)確認(rèn)對話框。(3)Prompt方法:其作用類似于InputBox函數(shù),即顯示一個(gè)提示對話框,提示用戶輸入數(shù)據(jù)。(4)Open方法:用于打開一個(gè)已存在的窗口,或者創(chuàng)建一個(gè)新窗口,并在該窗口中加載一個(gè)。(5)Close方法:用來關(guān)閉一個(gè)打開的窗口。(6)SetTimeout方法:用來設(shè)置一個(gè)計(jì)時(shí)器,以便在經(jīng)過指定的時(shí)間間隔后調(diào)用一個(gè)過程。(7)ClearTimeout方法:用于將指定的計(jì)時(shí)器復(fù)位。(8)Navigate方法:用來在當(dāng)前窗口中顯示新文檔。3.Window對象的事件 Window對象有兩個(gè)事件:即onLoad和onUnLoad事件,前者在頁面加載時(shí)被觸發(fā),后者在頁面卸載時(shí)被觸發(fā)?!纠?.12】演示第3章目錄33/241第3章VBScript語言2.Window對象的方法第33第3章VBScript語言3.7.3Document對象 Document對象表示在瀏覽器窗口或其中一個(gè)框架中顯示的HTML文檔,通過該對象的屬性和方法可以控制頁面的外觀和內(nèi)容。1.Document對象的屬性(1)LinkColor屬性:用來設(shè)置或返回文檔中超鏈接的顏色。(2)aLinkColor屬性:用來設(shè)置或返回文檔中活動(dòng)鏈接的顏色。(3)vLinkColor屬性:用來設(shè)置或返回已經(jīng)訪問過的超鏈接的顏色。(4)bgColor屬性:用來設(shè)置或返回文檔的背景顏色。(5)fgColor屬性:用來設(shè)置或返回文檔中文本的顏色。(6)Anchor屬性:這是一個(gè)對象屬性,用來表示文檔中的錨點(diǎn)。(7)Title屬性:用來返回當(dāng)前文檔的標(biāo)題,在運(yùn)行期間不能改變。(8)Location屬性:用來設(shè)置或返回文檔的URL。(9)Link屬性:這是一個(gè)對象屬性,用來表示文檔中的超鏈接。(10)LastModified屬性:返回當(dāng)前文檔的最后修改日期。(11)Referrer屬性:用于返回鏈接到當(dāng)前頁面的那個(gè)頁面的URL。第3章目錄34/241第3章VBScript語言3.7.3Document34第3章VBScript語言2.Document對象的方法 Document對象有五個(gè)方法,通過這些方法可以對文檔內(nèi)容進(jìn)行控制。(1)Open方法:用來為輸出打開文檔。執(zhí)行該方法后,文檔中的當(dāng)前內(nèi)容被清除,可以使用Write或WriteLn方法將新內(nèi)容寫到文檔中。(2)Write方法:用于向文檔中寫入HTML代碼,語法格式如下:
Document.Writestring 其中string是字符串常量或字符串變量,表示要寫入文檔的HTML代碼。執(zhí)行Write方法后,string參數(shù)指定的內(nèi)容插入到文檔的當(dāng)前位置,但寫入的內(nèi)容要用Close方法關(guān)閉文檔后才能顯示出來。(3)WriteLn方法:用于向文檔中寫入HTML代碼,語法格式如下:
Document.WriteLnstring 其中string是字符串常量或字符串變量,表示要寫入文檔的HTML代碼。WriteLn方法與Write方法類似,所不同的是WriteLn在內(nèi)容末尾添加一個(gè)換行符。(4)Close方法:用來關(guān)閉文檔,并顯示所有使用Write或WriteLn方法寫入的內(nèi)容。(5)Clear方法:用來清除當(dāng)前文檔的內(nèi)容。
【例3.13】演示第3章目錄35/241第3章VBScript語言2.Document對象的方35第3章VBScript語言3.7.4其他文檔對象1.History對象 History對象包含用戶已經(jīng)瀏覽過的URL集合,提供了瀏覽器的導(dǎo)航按鈕功能,可以通過文檔的歷史記錄來瀏覽文檔。History對象擁有以下主要屬性和方法。(1)Length屬性:給出歷史表中的URL數(shù)目。(2)Back方法:用于在歷史表中往回搜索。(3)Forward方法:用于在歷史表中向前搜索。(4)Go方法:在歷史表中跳轉(zhuǎn)到指定的項(xiàng)。2.Navigator對象 Navigator對象包含瀏覽器的信息,該對象擁有以下主要屬性。(1)AppCodeName屬性:返回瀏覽器的代碼名稱。對于MicrosoftInternetExploer,將返回“Mozilla”。(2)AppName屬性:返回瀏覽器的名稱。對于MicrosoftInternetExploer,將返回“MicrosoftInternetExploer”。(3)AppVersion屬性:返回瀏覽器的版本號。(4)UserLanguage屬性:返回當(dāng)前用戶所使用的語言。如果用戶使用簡體中文Windows,則返回“zh-cn”。第3章目錄36/241第3章VBScript語言3.7.4其他文檔對象第336第3章VBScript語言3.Location對象Location對象包含當(dāng)前URL的信息。該對象包括以下主要屬性和方法。(1)Href屬性:返回或設(shè)置當(dāng)前文檔的完整URL。(2)Hash屬性:用于返回或設(shè)置當(dāng)前URL中“#”后面的部分,也就是書簽的名稱。(3)Host屬性:用于返回或設(shè)置當(dāng)前URL中的主機(jī)名和端口部分。(4)HostName屬性:用于返回或設(shè)置當(dāng)前URL中的主機(jī)名。(5)Port屬性:用于返回或設(shè)置當(dāng)前URL中的端口部分。(6)PathName屬性:用于返回或設(shè)置當(dāng)前URL中的路徑部分。(7)Protocol屬性:用于返回或設(shè)置當(dāng)前URL中的協(xié)議類型。(8)Search屬性:用于返回或設(shè)置當(dāng)前URL中的查詢字符串(如果有的話)。查詢字符串將數(shù)據(jù)提交給服務(wù)器時(shí)在URL中緊跟在問號后面的內(nèi)容。(9)ReLoad方法:重新加載當(dāng)前文檔。4.Link對象 Link對象表示文檔中的超鏈接,通過該對象的一些屬性可以得到鏈接目標(biāo)。Link對象的基本屬性是Length,它返回文檔中鏈接的數(shù)目。每個(gè)鏈接都是Links數(shù)組中的一個(gè)元素,可以通過索引值來訪問。例如,第一個(gè)鏈接是Links(0),第二個(gè)鏈接是Links(1),最后一個(gè)鏈接是Links(Links.Length)。第3章目錄37/241第3章VBScript語言3.Location對象第337第3章VBScript語言3.1VBScript概述3.2VBScript基本元素3.3基本輸入輸出
3.4條件語句
3.5循環(huán)語句
3.6過程3.7文檔對象模型38/241第3章VBScript語言3.1VBScript概38第3章VBScript語言3.1VBScript概述3.1.1什么是VBScript VBScript是程序開發(fā)語言VisualBasic家族的最新成員,可以將靈活的腳本應(yīng)用于更廣泛的領(lǐng)域,包括MicrosoftInternetExplorer中的Web客戶端腳本和MicrosoftInternetInformationServer中的Web服務(wù)器端腳本。VBScript腳本語言有以下主要特點(diǎn):(1)易學(xué)易用。如果讀者已經(jīng)了解VisualBasic或VisualBasicforApplications,就會(huì)很快熟悉VBScript。(2)ActiveX腳本。VBScript使用ActiveX腳本與宿主應(yīng)用程序?qū)υ?;所用的腳本編寫引擎是vbscript.dll,該引擎能夠識(shí)別VBScript代碼;腳本編寫宿主是使用腳本編寫引擎的應(yīng)用程序,InternetExplorer就是宿主應(yīng)用程序的一個(gè)例子,它通過引擎來運(yùn)行腳本。(3)其他應(yīng)用程序和瀏覽器中的VBScript。開發(fā)者可以在其產(chǎn)品中免費(fèi)使用VBScript來實(shí)現(xiàn)程序。第3章目錄39/241第3章VBScript語言3.1VBScript概述39第3章VBScript語言3.1.2在HTML頁面中添加VBScript代碼 通常將VBScript腳本代碼放在HEAD部分中,以使所有腳本代碼集中放置,這樣能確保在BODY部分調(diào)用代碼之前讀取并解碼所有腳本代碼。在HTML頁面中添加VBScript腳本代碼時(shí),應(yīng)以<SCRIPT>標(biāo)記開始,而以</SCRIPT>標(biāo)記結(jié)束,基本語法格式為:
<SCRIPTLANGUAGE=“腳本語言名稱” [EVENT="事件名稱"][FOR="對象名稱"]>
<!-- 腳本代碼 --> </SCRIPT> <SCRIPT>標(biāo)記具有以下三個(gè)屬性:(1)LANGUAGE:指定腳本代碼所使用的腳本語言。對于InternetExplorer瀏覽器來說,該屬性的取值可以是“VBScript”或“JScript”,前者也可以簡寫為“VBS”。(2)EVENT:指定與腳本代碼相關(guān)聯(lián)的事件。(3)FOR:指定與事件相關(guān)聯(lián)的對象。【例3.1】演示第3章目錄40/241第3章VBScript語言3.1.2在HTML頁面中40第3章VBScript語言3.2VBScript基本元素3.2.1數(shù)據(jù)類型 在VBScript語言中只有一種數(shù)據(jù)類型,即Variant,這種數(shù)據(jù)類型可以包含不同類別的信息,它也是VBScript中所有函數(shù)的返回值的數(shù)據(jù)類型。Variant包含的數(shù)值信息類型稱為子類型,包括:Empty: 未初始化的Variant。Null: 不包含任何有效數(shù)據(jù)的VariantBoolean: 包含True或FalseByte : 包含0到255之間的整數(shù)Integer: 包含-32,768到32,767之間的整數(shù)Currency: -922,337,203,685,477.5808到922,337,203,685,477.5807Long: 包含-2,147,483,648到2,147,483,647之間的整數(shù)Single: 包含單精度浮點(diǎn)數(shù)Double 包含雙精度浮點(diǎn)數(shù)Date(Time): 含表示日期的數(shù)字String: 包含變長字符串,最大長度可為20億個(gè)字符Object: 包含對象Error: 包含錯(cuò)誤號第3章目錄41/241第3章VBScript語言3.2VBScript基本41第3章VBScript語言3.2.2VBScript常量1.普通常量 普通常量分為字符串常量和數(shù)值常量兩種。 字符串常量簡稱字符串,它由一對雙引號括起來的字符序列所組成,其中可以包含字母、漢字、數(shù)字,空格以及標(biāo)點(diǎn)符號等,長度不超過20億個(gè)字符。例如,“ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)”,“MicrosoftExplorer瀏覽器”。 數(shù)值常量分為整型數(shù)、長整型數(shù)和浮點(diǎn)數(shù)。整型數(shù)和長整型數(shù)都可以用十進(jìn)制、十六進(jìn)制和八進(jìn)制三種形式來表示。使用十六進(jìn)制數(shù)時(shí),應(yīng)在數(shù)字前面加上&H前綴;使用八進(jìn)制數(shù)時(shí),應(yīng)在數(shù)字前面加上&O前綴。對于長整型數(shù),使用十六進(jìn)制或八進(jìn)制形式表示時(shí),還要在數(shù)字后面加上后綴&。浮點(diǎn)數(shù)也稱為實(shí)型數(shù),分為單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)。浮點(diǎn)數(shù)可以用小數(shù)形式表示,也可以用科學(xué)記數(shù)法表示。2.符號常量 符號常量是用一個(gè)標(biāo)識(shí)符表示的常量,用于代替數(shù)字或字符串,其值從發(fā)生不改變。在VBScript中,符號常量分為預(yù)定義符號常量和用戶自定義常量。 VBScript提供了許多預(yù)定義符號常量,在編寫腳本代碼時(shí)無須聲明即可直接使用。例如,vbCrLf表示回車符和換行符的組合,vbGreen表示綠色的數(shù)值。第3章目錄42/241第3章VBScript語言3.2.2VBScript42第3章VBScript語言3.2.3VBScript變量1.聲明變量 在VBScript中,通常使用Dim語句顯式聲明變量并分配存儲(chǔ)空間,語法格式如下:
Dim變量名[,變量名]例如,下面的兩個(gè)語句分別聲明了一個(gè)變量和四個(gè)變量:
DimUserName DimTop,Bottom,Left,Right此外,也可以通過直接在腳本中使用變量名這種方式隱式聲明變量。但這通常不是一個(gè)好習(xí)慣,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行腳本時(shí)出現(xiàn)意外的結(jié)果。若要強(qiáng)制顯式聲明所有變量,可以在腳本程序的開頭處使用下面的語句:OptionExplicit2.命名規(guī)則 每一個(gè)變量都必須用一個(gè)標(biāo)識(shí)符來作為其名稱。變量命名必須遵循VBScript的標(biāo)準(zhǔn)命名規(guī)則。變量的命名規(guī)則為:第一個(gè)字符必須是字母;不能包含嵌入的句點(diǎn)(.);長度不能超過255個(gè)字符;在被聲明的作用域內(nèi)必須唯一;不能與VBScript的關(guān)鍵詞相同。第3章目錄43/241第3章VBScript語言3.2.3VBScript43第3章VBScript語言3.變量的作用域與存活期 變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時(shí)變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被腳本中所有過程所識(shí)別,稱為腳本級變量,具有腳本級作用域。 變量存在的時(shí)間稱為存活期。腳本級變量的存活期從被聲明的一刻起,直到腳本運(yùn)行結(jié)束。對于過程級變量,其存活期僅是該過程運(yùn)行的時(shí)間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間。在不同過程中可以使用同名的局部變量,這是因?yàn)槊總€(gè)局部變量只被聲明它的過程識(shí)別。4.給變量賦值 在VBScript中,可以通過賦值語句指定變量的值,此時(shí)變量位于等號的左邊,要賦的值位于等號的右邊,該值可以是任何數(shù)值、字符串、常數(shù)或表達(dá)式。例如: UserName="張三豐" BirthDate=#1972-5-28# WeekWage=500第3章目錄44/241第3章VBScript語言3.變量的作用域與存活期第344第3章VBScript語言5.標(biāo)量變量和數(shù)組變量 只包含一個(gè)值的變量稱為標(biāo)量變量。包含一系列值的變量稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時(shí)變量名后面帶有括號()。下面的語句聲明了一個(gè)一維數(shù)組:
DimA(10) 雖然括號中顯示的數(shù)字是10,但由于在VBScript中所有數(shù)組都是基于0的,所以這個(gè)數(shù)組實(shí)際上包含11個(gè)元素。在基于0的數(shù)組中,數(shù)組元素的數(shù)目總是括號中顯示的數(shù)目加1。這種數(shù)組被稱為固定大小的數(shù)組,簡稱為定長數(shù)組。 在數(shù)組中,使用數(shù)組名和索引來引用數(shù)組的每個(gè)元素,語法格式如下:
數(shù)組名(索引值) 下面的賦值語句將數(shù)據(jù)賦給數(shù)組元素,或者將數(shù)組元素的值賦給變量:
A(0)=256:A(1)=368:A(2)=121:SomeVariable=A(8) 數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為60。聲明多維數(shù)組時(shí),使用逗號分隔括號中每個(gè)表示數(shù)組大小的數(shù)字。例如,下面語句聲明了一個(gè)有6行和11列的二維數(shù)組,其名稱為MyTable:
DimMyTable(5,10) 聲明二維數(shù)組時(shí),括號中的第一個(gè)數(shù)字表示行的最大索引值,第二個(gè)數(shù)字表示列的最大索引值。第3章目錄45/241第3章VBScript語言5.標(biāo)量變量和數(shù)組變量第3章45第3章VBScript語言6.動(dòng)態(tài)數(shù)組 動(dòng)態(tài)數(shù)組是在運(yùn)行腳本時(shí)大小發(fā)生變化的數(shù)組。對動(dòng)態(tài)數(shù)組的最初聲明可以使用Dim語句或ReDim語句來實(shí)現(xiàn),但括號中不能包含任何數(shù)字。例如:
DimMyArray() ReDimAnotherArray() 若要使用動(dòng)態(tài)數(shù)組,必須隨后使用ReDim確定維數(shù)和每一維的大小。例如,下面的ReDim語句將動(dòng)態(tài)數(shù)組的初始大小設(shè)置為25,而后面的ReDim語句將數(shù)組的大小重新調(diào)整為30,同時(shí)使用Preserve關(guān)鍵字在重新調(diào)整大小時(shí)保留數(shù)組的內(nèi)容。
ReDimMyArray(25) …… ReDimPreserveMyArray(30) 重新調(diào)整動(dòng)態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應(yīng)注意,將數(shù)組的大小調(diào)小時(shí),將會(huì)丟失被刪除元素的數(shù)據(jù)。第3章目錄46/241第3章VBScript語言6.動(dòng)態(tài)數(shù)組第3章目錄9/246第3章VBScript語言3.2.4VBScript運(yùn)算符1.算術(shù)運(yùn)算符VBScript提供了九個(gè)算術(shù)運(yùn)算符,用來執(zhí)行簡單的算術(shù)運(yùn)算。(1)求冪運(yùn)算符(^): result=number^exponent(2)乘法運(yùn)算符(*): result=number1*number2(3)除法運(yùn)算符(/): result=number1/number2(4)整除運(yùn)算符(\): result=number1\number2(5)求余運(yùn)算符(Mod): result=number1Modnumber2(6)加法運(yùn)算符(+): result=expression1+expression2(7)減法運(yùn)算符(-):
result=number1-number2(減法) -number(負(fù)號)第3章目錄47/241第3章VBScript語言3.2.4VBScript47第3章VBScript語言2.連接運(yùn)算符 連接運(yùn)算符(&)強(qiáng)制兩個(gè)表達(dá)式進(jìn)行字符串連接,語法格式如下:
result=expression1&expression2 其中result為任意變量,expression1和expression2都是任意表達(dá)式。當(dāng)任一expression不是字符串時(shí),它將被轉(zhuǎn)換為String子類型。如果兩個(gè)表達(dá)式都是Null,則result也為Null。然而,如果僅有一個(gè)expression為Null,則它和其他表達(dá)式連接時(shí),按零長度字符串("")處理。任何表達(dá)式為Empty時(shí)也按零長度字符串處理。第3章目錄48/241第3章VBScript語言2.連接運(yùn)算符第3章目錄1148第3章VBScript語言3.比較運(yùn)算符比較運(yùn)算符用于比較表達(dá)式,包括: <(小于) <=(小于或等于) >(大于) >=(大于或等于) =(等于) <>(不等于)比較表達(dá)式的規(guī)則或結(jié)果 若兩個(gè)表達(dá)式都是數(shù)值,則執(zhí)行數(shù)值比較;若兩個(gè)表達(dá)式都是字符串,則執(zhí)行字符串比較;若一個(gè)表達(dá)式是數(shù)值而另一個(gè)是字符串,則數(shù)值表達(dá)式小于字符串表達(dá)式;若一個(gè)表達(dá)式是數(shù)值而另一個(gè)是字符串,則數(shù)值表達(dá)式小于字符串表達(dá)式;若一個(gè)表達(dá)式是Empty而另一個(gè)是數(shù)值,則執(zhí)行數(shù)值比較,使用0作為Empty表達(dá)式;若一個(gè)表達(dá)式是Empty而另一個(gè)是字符串,則執(zhí)行字符串比較,使用零長度字符串(“”)為Empty表達(dá)式;若兩個(gè)表達(dá)式都是Empty,則表達(dá)式相等。第3章目錄49/241第3章VBScript語言3.比較運(yùn)算符第3章目錄1249第3章VBScript語言4.邏輯運(yùn)算符(1)Not運(yùn)算符:對表達(dá)式執(zhí)行邏輯非運(yùn)算,語法格式如下:
result=Notexpression(2)And運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“與”運(yùn)算,語法格式如下:
result=expression1Andexpression2And運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(3)Or運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“或”運(yùn)算,語法格式如下:
result=expression1Orexpression2Or運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(4)Xor運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯“異或”運(yùn)算,語法格式如下:
result=expression1Xorexpression2Xor運(yùn)算符還可以對兩個(gè)數(shù)值表達(dá)式中位置相同的位執(zhí)行逐位比較。(5)Eqv運(yùn)算符:執(zhí)行兩個(gè)表達(dá)式的邏輯等價(jià)運(yùn)算,語法格式為:
result=expression1Eqvexpression2Eqv運(yùn)算符還可以執(zhí)行兩個(gè)數(shù)值表達(dá)式相應(yīng)位的逐位比較。(6)Imp運(yùn)算符:對兩個(gè)表達(dá)式進(jìn)行邏輯蘊(yùn)涵運(yùn)算,語法格式如下:
result=expression1Impexpression2Imp運(yùn)算符還可以執(zhí)行兩個(gè)數(shù)值表達(dá)式相應(yīng)位的逐位比較。第3章目錄50/241第3章VBScript語言4.邏輯運(yùn)算符第3章目錄1350第3章VBScript語言5.運(yùn)算符優(yōu)先級 當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),將按預(yù)定順序計(jì)算每一部分,這個(gè)順序被稱為運(yùn)算符優(yōu)先級。使用括號可以越過這種優(yōu)先級順序,強(qiáng)制首先計(jì)算表達(dá)式的某些部分。運(yùn)算時(shí),總是先執(zhí)行括號中的運(yùn)算符,然后再執(zhí)行括號外的運(yùn)算符。但在括號中仍要遵循標(biāo)準(zhǔn)運(yùn)算符優(yōu)先級。
當(dāng)表達(dá)式包含多種運(yùn)算符時(shí),首先計(jì)算算術(shù)運(yùn)算符,然后計(jì)算比較運(yùn)算符,最后計(jì)算邏輯運(yùn)算符。所有比較運(yùn)算符的優(yōu)先級相同,即按照從左到右的順序計(jì)算比較運(yùn)算符。算術(shù)運(yùn)算符、比較運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級在表3.14中列出。第3章目錄51/241第3章VBScript語言5.運(yùn)算符優(yōu)先級第3章目錄151第3章VBScript語言3.3基本輸入輸出3.3.1基本語句 賦值語句將表達(dá)式的值賦給變量或?qū)傩?。如果要將對象引用賦給變量或?qū)傩?,則不能使用賦值語句,而應(yīng)使用Set語句,其語法格式如下:
Setobjectvar={objectexpression|Newclassname|Nothing} 其中objectvar用于指定變量或?qū)傩缘拿Q,objectexpression是由對象名稱、另一個(gè)已聲明為相同對象類型的變量或返回相同對象類型的對象的函數(shù)或方法組成的表達(dá)式,New關(guān)鍵字用于創(chuàng)建新的類的實(shí)例,classna
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人租房合同的(31篇)
- 2024-2025學(xué)年北京市房山區(qū)高一上學(xué)期期中考試歷史試卷
- 2025年公共設(shè)施配套建設(shè)項(xiàng)目房屋征收合同
- 2025年住宅銷售策劃合同模板規(guī)定
- 2025年官方離婚協(xié)議范本策劃(雙方同意版)
- 2025年全球貿(mào)易合同制定原則及合規(guī)要求解析
- 2025年債權(quán)轉(zhuǎn)讓與貸款合作協(xié)議
- 2025年車輛所有權(quán)變更策劃協(xié)議書模板
- 2025年農(nóng)村土地利用合作協(xié)議
- 2025年人事檔案授權(quán)委托協(xié)議
- 廣東省2024年普通高中學(xué)業(yè)水平合格性考試語文仿真模擬卷01(解析版)
- 信息科技重大版 七年級上冊 互聯(lián)網(wǎng)應(yīng)用與創(chuàng)新 第1單元 單元教學(xué)設(shè)計(jì) 互聯(lián)網(wǎng)時(shí)代
- CR200J動(dòng)力集中動(dòng)車組拖車制動(dòng)系統(tǒng)講解
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫參考答案
- 腎性高血壓的護(hù)理
- 國際貨物運(yùn)輸委托代理合同(中英文對照)全套
- 全面新編部編版四年級下冊語文教材解讀分析
- 《建筑工程質(zhì)量檢驗(yàn)評定標(biāo)準(zhǔn)》
- 教學(xué)能力大賽-教學(xué)實(shí)施報(bào)告《大學(xué)英語2c》
- 江蘇農(nóng)牧科技職業(yè)學(xué)院單招《職業(yè)技能測試》參考試題庫(含答案)
- VDA6.3 2023過程審核教材
評論
0/150
提交評論