第 3 章 VBScript基本語法

Download Report

Transcript 第 3 章 VBScript基本語法

第 3 章 VBScript基本語法
製作
1
VBScript的初體驗
- 什麼是程式?

觀念一:程式執行的方式是由上而下,一行一行執
行的。

觀念二:每一行程式執行時,是由左到右執行,執
行完後就跳到下行的開頭,再由左到右執行。

觀念三:程式是一種電腦講的話,跟人的語言一樣
有一定的文法與用字,而這些都是人創造出來與電
腦溝通用的,如:End就是程式中的用字,這些用
字我們稱為保留字。而程式的文法我們稱為語法。
2
VBScript的初體驗
- 第一個ASP網頁 - Hello World!!

以下為HelloWorld.asp網頁的內容。
3
VBScript的初體驗
- 第一個ASP網頁 - Hello World!!

將上述完成的ASP網頁,放到IIS安裝位置的
wwwroot資料夾或已指定為虛擬目錄的資料夾,以
IE瀏覽畫面如下圖所示:
4
VBScript的初體驗
- ASP網頁的結構

ASP網頁大致可分為程式碼與非程式碼兩個部份。

程式碼的部份將以<%與%>符號標示,其他部份
則與一般網頁(.htm檔)的撰寫方式相同。
<%
…
%>
'程式碼
5
VBScript的初體驗
- ASP網頁的結構

在ASP檔內除了可以用<%與%>標示程式碼外,
還可以用HTML的<SCRIPT>標籤指定執行的位置
與語言。
<SCRIPT LANGUAGE=vbscript RUNAT=Server>
… '程式碼
</SCRIPT>C
指定執行位置
6
VBScript的初體驗
- 註解
欲程式中加入註解文字時,必須在註解文
字前以『‘』符號標示。
 當Web伺服器解譯時,讀取到『'』符號,
將略過該行該符號後的所有字元。

7
VBScript的初體驗
- 資料的輸出



欲進行資料輸出時,應呼叫該物件的Write方法,
語法如下:
Response.Write 欲輸出的字串
在ASP網頁內,必須用『“』符號標示字串。若欲
輸出『”』符號時,則必須在欲輸出字串中用兩個
『“”』符號表示,如:
以上敘述的輸出結果為:
"Hello World!"
8
VBScript的初體驗
- 另一種撰寫風格

以下將把HelloWorld.asp改寫為HelloWorld2.asp
(儲存於Ch3\HelloWorld資料夾),內容如下:
只適用於單一變數之輸出
9
VBScript的初體驗
- 另一種撰寫風格

我們比較一下程式碼改寫的部份。
10
VBScript的初體驗
- 另一種撰寫風格
HelloWorld2.asp的第7行利用
<% = 欲輸出字串 %>
代替
<% Response.Write 欲輸出字串 %>

11
VBScript的初體驗
- 另一種撰寫風格

不過,<% = … %>這個簡化的Response.Write
敘述,僅能用於只有一行的輸出敘述,不可使用數
行程式碼,所以,不可以這樣用…
12
資料型別、變數與常數
- 變數與常數
變數?常數?
 變數(Variable)就是程式內變動的資料,在程式
中,通常以一個名稱代表某個變數。
 常數(Constant)是程式中不會變動的資料,用
於代表一特定值。

13
資料型別、變數與常數
- 變數與常數
變數的宣告
 在大部份的程式語言裡,程式中若欲使用某變數
時,必須經過變數宣告的動作。
 但在VBScript中,有兩種變數的宣告方式,一為
明確宣告,另一為模糊宣告。
 明確宣告變數的語法如下:
Dim A ‘明確宣告A變數
 模糊宣告則是在變數被使用時,同時完成宣告,
且不需要使用Dim。

14
資料型別、變數與常數
- 變數與常數



一般來說,變數在開始使用時,通常會設定起始值,
此時,便是完成模糊宣告的時機。
使用模糊宣告有個壞處,就是如果您不小心打錯變
數名稱,此時,這個錯誤的變數名稱將會被視為另
一個新的變數。
若希望避免這個問題,可利用『Option Explicit』
敘述,強制程式中每個變數在使用前都必須經過明
確宣告,而該敘述必須於所有程式碼之前使用。
15
資料型別、變數與常數
- 變數與常數
在ASP網頁內,對於變數名稱的使用有以下限制。
 不能與VBScript所使用的保留字相同,如:您不
能宣告一個名為for的變數,因為for是VBScript中
迴圈敘述的保留字。
 變數名稱的第一個字元必須是英文字母,如:a到z
或A到Z。
 變數名稱的長度限制為255個字元。
 在同一個變數可見範圍中,變數名稱必須是唯一的。

16
資料型別、變數與常數
- 變數與常數

自訂常數
若程式中,有一個值常常被使用,可以將這個值,
宣告為一個常數。宣告方式是利用Const敘述,以
下敘述將利用Const宣告PI為代表3.14的自訂常數。
Const PI = 3.14
17
資料型別、變數與常數
- 資料型別

資料型別就是資料的類型。在程式中,資料型別
代表著此類資料表達的意義,進而牽涉到所能執
行運算動作。

在VBScript中,僅有一種非常特殊的資料型別 –
Variant。此資料型別的變數可以儲存數種不同
的資料,當實際執行運算時,才會依照不同的使
用狀況,將Variant型別轉換為不同類型的資料。
18
資料型別、變數與常數
- 資料型別

Variant型別所能儲存的型別,稱之為子型別
(Subtype),各子型別說明於下表。
19
資料型別、變數與常數
- 資料型別
20
運算子
- 運算子與算式
什麼是運算子
 運算子為程式中用於執行計算動作的符號。
 在VBScript中,依照所執行的計算動作,可以將
運算子歸類如下:
算術運算子
比較運算子
邏輯運算子
字串運算子
指派運算子

21
運算子
- 運算子與算式

算式
算式由變數與運算子構成,用於表達一連串計算
動作。
22
運算子
- 算術運算子

算術運算子與運用語法整理如下表:
23
運算子
- 字串連接運算子
字串的類型
 在VBScript中,字串的類型分為文字型字串以及
數值型字串。
 文字型字串就是一般的字串。

 數值型字串則是符合數值表示方法的字串。
24
運算子
- 字串連接運算子
『&』運算子
 『&』運算子為執行字串連結運算的運算子。

 不論此運算子用於何種型別的資料,都將會先將
該型別先轉換成字串,然後再執行字串連結的運算
動作,也因此運算的結果將為字串型別。
25
運算子
- 字串連接運算子
『+』運算子
 『+』運算子在VBScript中,除了可以執行算術
運算的加法外,當將此運算子用在字串運算時,
將執行連結字串的動作。

 但數值型字串與數值運用『+』運算子執行運算
時,將執行加法運算。
26
運算子
- 比較運算子

VBScript的比較運算子整理如下表:
27
運算子
- 比較運算子

下表為各種類型資料進行比較的原則。
28
運算子
- 比較運算子

下表的Is運算子將用於比較物件。
29
運算子
- 邏輯運算子

VBScript中的邏輯運算子整理如下:
30
運算子
- 邏輯運算子

下表稱為真值表,T(True)代表『真』,F
(False)代表『假』。我們整理當A、B在各種情
形下,各邏輯運算子的運算結果:
31
運算子
- 『=』運算子



程式內應以『指派符號』代替『等號』做為『=』
運算子的名稱。
在程式裡,不應該用『等號』的觀念看待『=』
符號,而應該解釋為『指派』。
在電腦裡,不論式一或者式二,其運算的方式都
是先計算出『=』右邊的算式,然後再把這個值
『丟』到這個變數所佔的記憶體裡。所以,應該
把『=』視為將值『指派』給變數。
32
運算子
- 各運算子的計算順序

所謂運算子的計算順序,就是在一道運算式中,存
在許多運算子時,處理每一個運算子的順序。若遇
到處理順序相同的,則以左邊的運算子優先。
高
優先次序
低
高
優
先
次
序
低
33
運算子
- 各運算子的計算順序

表中各運算子的優先次序為『由上至下,由左至
右』。因此運算式中以算術運算子為最優先。

算術運算子又以最左方的^指數運算子為優先,
所以,當電腦執行到一列運算式時,將先處理指
數運算,再處理其他的運算。
34
運算子
- 各運算子的計算順序
以下將說明運算子的優先順序處理方式。
5*2 > 6 And 7+8 < 8
 首先,電腦會完成上式中算術運算子的運算,計算
出 5*2=10與7+8=15,如下所示:
10 > 6 And 15 < 8
 然後,整理比較運算的部份得到以下結果:
True And False
最後得到結果為False。

35
運算子
- 各運算子的計算順序
再舉一個算術運算子的例子:
A = 5* 2^2 +6/2
 第一步先計算指數的運算部份(2^2=4),得
到以下結果。
A = 5*4 + 6/2
 再計算乘除,得到以下結果。
A = 20 + 3
 最後得到
A = 23

36
運算子
- 常用符號

在VBScript裡還有幾個常用的符號,整理如下表:
37
運算子
- 子型別的取得與轉換

取得子型別
運用VarType函數,語法如下:

VarType(變數)
該函數的傳回值所代表子型別說明如下表。
38
運算子
- 子型別的取得與轉換
39
運算子
- 子型別的取得與轉換


自動型別轉換
程式就提供了一個自動型別轉換的機制,自動將運
算式內不同的資料型別轉換為一致的型別,再執行
計算動作。
強制型別轉換
在許多時候,當發現Variant型別的自動轉換機制,
無法適當轉換出我們想要的子型別,必須利用型別
轉換函數。
40
運算子
- 子型別的取得與轉換

下表為VBScript所提供的型別轉換函數,更進一步
的說明請參考附錄A-2的轉換函數。
41
運算子
- 子型別的取得與轉換
42
流程控制
- 流程控制的用途與種類




流程控制是程式中,用於控制或選擇某一程式區
段執行方式的語法。
流程控制分為兩類,一種是判斷敘述,另一種是
迴圈。
判斷敘述是利用條件式,進而決定要執行哪一個
程式區段。
迴圈則是配合條件式,控制某程式區段的重複執
行。
43
流程控制
- 流程控制的用途與種類
判斷敘述語法
判斷敘述最基本類型的語法如下所示:
If 條件式Then
欲控制程式敘述
End If
 If後的條件式經過運算後將傳回『真』或『假』。
傳回『真』時,則執行程式區段。若為『假』則
跳過程式區段。

44
流程控制
- 流程控制的用途與種類

迴圈控制語法
迴圈控制語法如下所示:
Do While 條件式
欲控制程式敘述
Loop
 當Do While後方的條件式傳回的值為『真』時,
則執行程式區段,直到條件式傳回的值為『假』
時,才跳出迴圈。
45
流程控制
- If判斷敘述
if判斷敘述依照功能可以分為以下兩類:
 單一條件判斷敘述:利用一條件式控制程式是否
執行某程式敘述或由兩程式敘述中擇一執行。此
判斷敘述將利用If…Then…End If或
If…Then…Else…End If建立。
 多條件判斷敘述:利用多種條件控制程式所執行
的敘述,此判斷敘述將以
If…Then…ElseIf...End If建立。

46
流程控制
- If判斷敘述

單一條件判斷敘述
語法一:(控制單一程式敘述)
If 條件式 Then
程式敘述
End If
47
流程控制
- If判斷敘述

語法一的意義為,如果(If)條件式為真,則
(Then)執行程式敘述,執行流程圖如右:
進入判斷式
條件式
真
程式敘述一
離開判斷式
假
程式敘述二
48
流程控制
- If判斷敘述

語法二:(兩程式敘述擇一執行)
If 條件式 Then
程式敘述一
Else
程式敘述二
End If
49
流程控制
- If判斷敘述

語法二的意義為,如果(If)條件式為真,則
(Then)執行程式敘述一,否則(Else)執行程
式敘述二,執行流程圖如下:
進入判斷式
條件式
真
程式敘述一
離開判斷式
假
程式敘述二
50
流程控制
- If判斷敘述

多條件判斷敘述
語法如下:
If 條件式A Then
程式敘述一
ElseIf 條件式B Then
程式敘述二
ElseIf ……
……
Else
程式敘述N
End If
51
流程控制
- If判斷敘述

若都不符合所有條件式,則執行Else後的程式敘
述N,執行流程圖如下:
進入判斷式
條件式A
真
程式敘述一
假
條件式B
真
程式敘述二
假
條件式C
真
程式敘述三
假
條件式...
真
程式敘述...
離開判斷式
假
程式敘述N
(else敘述)
52
流程控制
- If判斷敘述

巢狀判斷敘述
If 條件式A Then
If 條件式B Then
程式敘述一
Else
程式敘述二
End If
53
流程控制
- If判斷敘述
Else
If 條件式C Then
程式敘述三
Else
程式敘述四
End If
End If
54
流程控制
- If判斷敘述

以下為整個巢狀判斷敘述的執行流程。
進入判斷式
條件式 A
真
程式敘述一
真
假
條件式 B
條件式 C
假
真
假
程式敘述二
程式敘述三
程式敘述四
離開判斷式
55
流程控制
- Select Case判斷敘述

語法如下:
Select Case 運算式(或變數)
Case 條件式一
程式敘述一
Case 條件式二
程式敘述二
………
Case Else
程式敘述N
End Select
56
流程控制
- Select Case判斷敘述

執行流程如下圖所示。
進入判斷式
計算Select Case後的
條件式值
條件式值一
真
程式敘述一
真
程式敘述二
假
條件式值二
離開判斷式
假
......
假
default
程式敘述N
57
流程控制
- For…Next迴圈

迴圈語法如下:
For計次變數 = 起始值 To 停止值 Step 變動值
程式區段
Next
58
流程控制
- For…Next迴圈





For…Next迴圈適用於控制某一程式區段重複執行
特定次數。
在For…Next迴圈語法中,有一個計次變數i,必須
指定起始值與停止值。
迴圈每被執行一次,該計次變數即按照指定的變動
值累加,直到該計次變數加大於停止值後停止。
若欲指定的變動值為1時,則可省略。
For計次變數 = 起始值 To 停止值
程式區段
Next
59
流程控制
- For…Next迴圈

For迴圈的執行流程如下圖所示。
進入迴圈
以起始值設定
計次變數
小於等於
終止值
真
程式區段
假
以變動值更新
計次變數
離開迴圈
60
流程控制
- For…Next迴圈

下表將列出上述迴圈的執行過程中,各計次變數
值的變化。
61
流程控制
- For…Next迴圈

下圖為整個過程的流程圖。
進入迴圈
i = 1
To 3
真
Response.Write "迴圈 3 次執行的第" & i & "次"
假
Step 1
離開迴圈
62
流程控制
- For…Next迴圈

巢狀For迴圈
For I = 1 To 10 Step 1
For J = 1 To 10 Step 1
程式敘述
Next
Next
63
流程控制
- Do…Loop迴圈

救命!無窮迴圈
若不幸遇到這個狀況,只要按下IE工具列的停止按
鈕,即可中止ASP網頁的執行。

Do迴圈的基本形式
Do
程式敘述
Loop
64
流程控制
- Do…Loop迴圈

Do While…Loop
在Do迴圈中,最常見的要算是Do While…Loop
迴圈,語法如下:
Do While 條件式
程式敘述
Loop
65
流程控制
- Do…Loop迴圈

執行流程如下圖所示。
進入迴圈
條件式
真
假
程式區段
離開迴圈
66
流程控制
- Do…Loop迴圈

Do Until…Loop
語法如下:
Do Until 條件式
程式敘述
Loop
67
流程控制
- Do…Loop迴圈

Do…Loop While
語法如下:
Do
程式敘述
Loop While 條件式
68
流程控制
- Do…Loop迴圈

流程圖如下:
進入迴圈
程式敘述
真
條件式
假
離開迴圈
69
流程控制
- Do…Loop迴圈

Do…Loop Until
語法如下:
Do
程式敘述
Loop Until 條件式
70
流程控制
- Do…Loop迴圈

Do…Exit Do…Loop
Do…Exit Do…Loop迴圈的語法如下:
Do
程式敘述一
If 條件式 Then
程式敘述三
Exit Do
End If
程式敘述二
Loop
71
流程控制
- Do…Loop迴圈

執行流程圖如下:
72
流程控制
- Do…Loop迴圈

各種Do…Loop迴圈的比較
73
流程控制
- Do…Loop迴圈
74
副程式與函數
- 副程式

副程式的宣告
副程式的宣告語法如下:
001
Sub 副程式名稱(參數1, 參數
2, …., 參數N)
002
……
003
End Sub
 若副程式的執行過程中,欲在某些情況下強制離
開副程式時,可以運用『Exit Sub』敘述達到目
的。
75
副程式與函數
- 副程式
呼叫副程式
 呼叫副程式的語法如下:
Call 副程式名稱(參數1, 參數2, …., 參數N)

 或者,省略Call,直接以副程式的名稱呼叫
副程式名稱(參數1, 參數2, …., 參數N)
76
副程式與函數
- 副程式

副程式的宣告位置
對於網頁使用的副程式,並不限定您宣告在主程式
的何處(副程式與函數以外的部份為主程式),亦
可將副程式宣告在呼叫敘述後。
77
副程式與函數
- 副程式

副程式的執行過程
當程式內呼叫副程式時,程式的執行流程將會從呼
叫敘述處,進入副程式,等到副程式執行完後,執
行流程又會回到原來呼叫副程式的敘述,繼續向下
執行。
78
副程式與函數
- 函數
在VBScript中,對於函數的使用可分為兩
個部份說明,一是自訂函數,二是
VBScript函數。
 自訂函數是由使用者自行定義的函數。
 VBScript函數是由VBScript定義,可供
使用者呼叫使用的函數。

79
副程式與函數
- 函數

函數的宣告
函數的宣告語法如下:
001
Function 函數名稱(參數1,
參數2, …., 參數N)
002
……
003
函數名稱 = 運算式
004
……
005
End Function
80
副程式與函數
- 函數

函數的呼叫
在程式中運用以下語法即可呼叫函數:
函數名稱 (實際參數1, 實際參數2, … ,實際參
數N)
 以下語法將呼叫前面圓面積函數,計算半徑為
5cm之圓的面積。
CircleArea(5)
81
副程式與函數
- 函數

VBScript的內建函數
陣列函數
轉換函數
物件函數
日期/時間函數
檢查函數
數學函數
訊息函數
82
副程式與函數
- 函數
 字串函數
 格式控制函數
 解譯引擎函數
 一般函數
83
副程式與函數
- 全域變數與區域變數


當在網頁主程式內宣告一個變數後,該變數便是
一個全域變數(Global Variable),這類變數
的可使用範圍包括整個網頁,以及網頁的副程式
與函數內之程式敘述。
在副程式與函數內宣告的變數,則稱之為區域變
數(Local Variable),它的可見用範圍僅及副
程式與函數內的程式敘述,在宣告該變數的副程
式或者函數之外,無法使用該變數。
84
陣列的宣告
- 什麼是陣列?

陣列是由好幾個陣列元素組成,每一個單獨
的陣列元素,相當於一個變數可用於儲存資
料。
85
陣列的宣告
- 陣列的宣告與使用
陣列的宣告
陣列變數的宣告語法如下:
Dim 陣列名稱(陣列大小 –1 )
 當欲宣告一個大小為5的陣列時,陣列的宣告語法
應該如下所示。

86
陣列的宣告
- 陣列的宣告與使用

陣列元素
取得陣列內元素的值,必須靠陣列的索引值,也
就是每個元素的編號,語法如下:
陣列名稱(索引值)

以下程式片段將宣告一個擁有10個元素的陣列,
並將陣列中第5個元素之值設為10。
Dim varAry(9)
varAry(4) = 10
87
陣列的宣告
- 陣列的宣告與使用

利用Array函數宣告陣列
利用Array函數直接宣告,並設定陣列元素的起始
值,語法如下:
陣列變數 = Array(元素值1, 元素值2, … ,
元素值N)

以下敘述將宣告並完成varAry陣列元素的起始值。
varName = Array("郭尚君", "馬孝瑀", "蘇
品全")
88
陣列的宣告
- 二維陣列
二維陣列的宣告
二維陣列的宣告語法如下:
Dim 陣列名稱(列數-1, 行數-1)
 由於陣列的編號的起始值是0,所以宣告時,陣列
的行列數都必須減1。
 假若欲宣告一個4列5行的陣列時,宣告敘述應如
下:
Dim Ary(3,4)

89
陣列的宣告
- 二維陣列

二維陣列元素的取用
一維陣列元素的存取只需要一個索引,二維陣列
則需要兩個索引(列索引、行索引),才能存取
元素。每一維度的索引值均由0開始編號。
90
陣列的宣告
- 二維陣列

當運用以上敘述宣告一個大小為3x4的二維陣列後,
陣列元素的排列方式與存取語法將如下圖所示:
91
陣列的宣告
- 二維陣列
二維陣列的輸出
 二維陣列內值的輸出方式,必須藉由兩層的巢狀迴
圈達到目的。
 以下語法將輸出大小為3列4行之二維陣列內的元
素值。

92
陣列的宣告
- 二維陣列

輸出結果將如下圖所示。
93
陣列的宣告
- 二維陣列

若將第一、二層迴圈相互對調,如下所示。

將以行列互換的方式輸出陣列,將行輸出為列,列
輸出為行。
94
陣列的宣告
- 二維陣列
多維陣列
 若欲宣告N維度的陣列,您就得宣告N個維度的大
小,而宣告時的數字為維度大小減1。
Dim 陣列名稱(維度1的大小-1, 維度2的大小
-1, …, 維度N的大小-1)

 取用陣列元素的方式亦相同的。
陣列名稱(維度1的索引, 維度2的索引, …, 維
度N的索引)
95
陣列的宣告
- 陣列的再宣告
在VBScript中,當宣告陣列後,還可以動
態地重新定義陣列的大小。
 以下語法將重新定義A陣列的大小為3x4。
ReDim A(2, 3)
 當重新定義陣列大小時,新陣列所有元素的
值將被全部設為Empty。

96
執行於客戶端的VBScript
- 在客戶端使用VBScript
設計ASP網頁時,下列工作是適合交由執行
於客戶端的VBScript處理。
檢查使用者輸入在網頁中,欲傳遞到伺服端
的資料
回應使用者在網頁中執行之動作,所觸發的
事件
控制瀏覽器

97
執行於客戶端的VBScript
- IE的瀏覽器物件模型

下圖為IE所提供的瀏覽器模型,圖中僅列出與本書
有關的物件。
w indow
¶° ¦X
document
f orms
......
ª« ¥ó
......
f rames
......
w indow
w indow
視窗框架中的每個子視窗
本身都是一個window物件
98
執行於客戶端的VBScript
- IE的瀏覽器物件模型
整個物件模型包含兩類物件:
 一類是以灰色方塊代表的物件,物件是當瀏覽器
瀏覽網頁時,僅有一個的物件。

 另一類是以白色方塊代表的集合,集合是當瀏覽
器瀏覽網頁時,將擁有不止一個的物件所組成。
99
執行於客戶端的VBScript
- IE的瀏覽器物件模型
window物件
 此物件代表瀏覽器的視窗。
 在window物件中有兩個特殊的屬性,一個是
top,另一個self。
 top代表瀏覽器中瀏覽網頁的最上層視窗。
 self代表目前瀏覽網頁的視窗。

100
執行於客戶端的VBScript
- IE的瀏覽器物件模型

frames集合
當瀏覽器所瀏覽的網頁使用視窗框架時,則
frames集合為由各個視窗框架之子視窗組成的集
合,視窗框架的每個子視窗都是一個window物件。
 document物件
代表目前瀏覽器中所瀏覽的網頁。
101
執行於客戶端的VBScript
- IE的瀏覽器物件模型

forms集合
當網頁中利用<Form>標籤建立表單時,
document物件forms集合的form物件將用於代
表這些表單。
102
執行於客戶端的VBScript
- 客戶端VBScript程式的撰寫

執行於客戶端的VBScript程式,必須利用
<SCRIPT>標籤標示,並指定標籤所使用
的語言種類。
103
執行於客戶端的VBScript
- 客戶端VBScript程式的撰寫
若使用的語言為VBScript時,則語法如下:
<SCRIPT Language=vbscript>
程式碼
</SCRIPT>
或
<SCRIPT Language=vbscript>
<!-程式碼
-->
</SCRIPT>

104
執行於客戶端的VBScript
- 按鈕回應事件與Window事件

指令按鈕的建立語法與回應事件
以下為網頁內建立指令按鈕的HTML語法。
<Inupt Type=button Name=控制項名稱
Value=顯示值 OnClick=副程式名稱>
105
執行於客戶端的VBScript
- 按鈕回應事件與Window事件
Window的OnLoad事件與OnUnLoad事件
 OnLoad事件為瀏覽器視窗開啟時,所觸發的事
件。回應此事件的事件程序名稱為
Window_OnLoad。

 OnUnLoad事件則是瀏覽器視窗關閉時,所觸發
的事件。回應此事件的事件程序名稱為
Window_OnUnLoad。
106
執行於客戶端的VBScript
-利用Window物件開啟/關閉視窗
開啟新視窗
當欲從一個網頁中再開啟另一個瀏覽器時,可以運
用Window物件的Open方法,語法如下:
Window.Open 欲瀏覽網頁, 視窗名稱, 視窗
樣式
 以下為語法各部份的說明:
 欲瀏覽網頁
指定開啟之新視窗所瀏覽的網頁位址。

107
執行於客戶端的VBScript
-利用Window物件開啟/關閉視窗
 視窗名稱
指定開啟之視窗的名稱。
 視窗樣式
指定開啟之新視窗的樣式。其指定方式是以一串設
定字串指定。語法如下:
"屬性1 = 值, 屬性2 = 值, ……"
108
執行於客戶端的VBScript
-利用Window物件開啟/關閉視窗

可使用的屬性名稱與設定值列於下表。
109
執行於客戶端的VBScript
-利用Window物件開啟/關閉視窗

呼叫Window物件的Close方法關閉瀏覽器
呼叫window物件的close方法可關閉目前的瀏覽
器,語法如下:
window.close
110
執行於客戶端的VBScript
- 設定瀏覽網頁

欲控制目前視窗所瀏覽的網頁,可以運用設定
window物件location屬性的方式達成。

以下語法將設定目前瀏覽器開啟位於同一個路徑位
置的page.htm網頁。
window.location = "page.htm"
111
執行於客戶端的VBScript
- 設定瀏覽網頁

若開啟的網頁不在同一個路徑位置時,可使用相
對路徑指定該網頁的位置。

以下敘述將開啟位於目前路徑下Sub資料夾的
page.htm檔。
window.location = "Sub/page.htm"
112
執行於客戶端的VBScript
- 視窗框架的控制
當在程式中欲引用視窗框架內某子視窗時,便可
以透過frames集合的協助取得,語法如下:
top.frames(索引值)
 索引值為子視窗的索引編號,起始編號為0,編
號方式為由左而右,由上而下依序編號。

113
執行於客戶端的VBScript
- 視窗框架的控制

以下為一個將網頁分割為三個子視窗的視窗框架,
圖中將標示各子視窗的引用語法。
114
執行於客戶端的VBScript
- 視窗框架的控制

可透過設定frame物件location屬性的方式控制某
子視窗內所瀏覽的網頁,語法如下:
top.frames(索引值) = 網頁路徑與名稱

欲引用目前網頁顯示之子視窗時,可以使用
window物件的self屬性,且引用時可省略
『window.』。
115
執行於客戶端的VBScript
- 視窗框架的控制

以下敘述將取得目前網頁顯示之子視窗的
名稱,此名稱為建立視窗框架時,設定於
<Frame>標籤的name屬性。
self.name
116