使用對象
無論使用的是 ActiveX? 控件(以前稱為 OLE 控件)還是 Java? 對象,Microsoft Visual Basic Scripting Edition 和 Microsoft? Internet Explorer 都以相同的方式處理它們。
如果您使用的是 Internet Explorer 并且 ActiveX 庫中安裝了這些控件,就會看到由以下代碼制作的頁面。
<OBJECT> 標記用來包含對象,<PARAM> 標記用來設置對象屬性的初始值。使用 <PARAM> 標記類似于在 Visual Basic 中設置窗體控件的初始屬性值。例如,以下代碼使用 <OBJECT> 和 <PARAM> 標記將 ActiveX 標簽控件添加到頁面中:
<OBJECT
classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
id=lblActiveLbl
width=250
height=250
align=left
hspace=20
vspace=0
>
<PARAM NAME="Angle" VALUE="90">
<PARAM NAME="Alignment" VALUE="4">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="Caption" VALUE="一個簡單標簽">
<PARAM NAME="FontName" VALUE="宋體">
<PARAM NAME="FontSize" VALUE="20">
<PARAM NAME="FontBold" VALUE="1">
<PARAM NAME="FrColor" VALUE="0">
</OBJECT>
象對任何窗體控件一樣,可以獲取屬性、設置屬性和調用方法。例如,以下代碼包含 <FORM> 控件,可用其對標簽控件的兩個屬性進行操作:
<FORM NAME="LabelControls">
<INPUT TYPE="TEXT" NAME="txtNewText" SIZE=25>
<INPUT TYPE="BUTTON" NAME="cmdChangeIt" VALUE="更改文本">
<INPUT TYPE="BUTTON" NAME="cmdRotate" VALUE="旋轉標簽">
</FORM>
通過定義過的窗體,cmdChangeIt 按鈕的事件過程可更改標簽文本:
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdChangeIt_onClick
Dim TheForm
Set TheForm = Document.LabelControls
lblActiveLbl.Caption = TheForm.txtNewText.Value
End Sub
-->
</SCRIPT>
代碼將對控件和值的引用限定在窗體中,這與簡單驗證示例中的代碼類似。
ActiveX 庫中有多個 ActiveX? 控件可用于 Internet Explorer。您可以在那里找到關于屬性、方法和事件的全部信息,也可以在編程參考頁面上找到關于控件類標識符 (CLSID) 的信息。另外還可以在 Internet Explorer 4.0 Author's Guide and HTML Reference 頁面上找到有關 <OBJECT> 標記的詳細信息。
-----------------------------------------------------------------------
注意 Internet Explorer 的早期版本要求用大括號 ({}) 將 classid 屬性括起來,不符合 W3C 規格。在當前版本中使用大括號則會產生“此頁使用了過期版本的 <OBJECT> 標記”信息。
最后給大家付一個VBScript頁面的簡單樣例
使用 Microsoft? Internet Explorer 可以查看用以下 HTML 代碼制作的頁面。如果單擊頁面上的按鈕,可看到 VBScript 的運行結果。
<HTML>
<HEAD><TITLE>一個簡單首頁</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Button1_OnClick
MsgBox "Mirabile visu."
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>一個簡單首頁</H3><HR>
<FORM><INPUT NAME="Button1" TYPE="BUTTON" VALUE="單擊此處"></FORM>
</BODY>
</HTML>
結果雖然有點簡單:一個對話框顯示一個拉丁短語(意為“看起來非常漂亮”)。然而這段代碼實際上作了許多事情。
當 Internet Explorer 讀取頁面時,找到 <SCRIPT> 標記,識別出 VBScript 代碼并保存代碼。單擊按鈕時,Internet Explorer 使按鈕與代碼連接,并運行該過程。
<SCRIPT> 標記中的 Sub 過程是一個事件過程。過程名包含兩部分:一部分為按鈕名,即 Button1(從 <INPUT> 標記中的 NAME 屬性獲?。?,另一部分為事件名,即 OnClick。兩部分由下劃線 (_) 連接。單擊按鈕時,Internet Explorer 查找并運行相應的事件過程,即 Button1_OnClick。
Internet Explorer 在 Internet Explorer Scripting Object Model 文檔中定義了可用于窗體控件的事件。
頁面也可以使用控件與過程的組合。VBScript 與窗體顯示了控件之間的一些簡單交互作用。
向事件附加代碼的其他方法
上述的方法也許是最簡單和最常用的,但也可以使用另外兩種方法向事件附加 VBScript 代碼。一種方法是在定義控件的標記中添加較短的內部代碼。例如在單擊按鈕時,下面的 <INPUT> 標記執行與前面示例相同的操作:
<INPUT NAME="Button1" TYPE="BUTTON"
VALUE="單擊此處" OnClick='MsgBox "Mirabile visu."'>
請注意函數調用包含在單引號中,MsgBox 函數的字符串包含在雙引號中。只要用冒號 (:) 分隔語句,就可以使用多條語句。
另一種方法是在 <SCRIPT> 標記中指定特定的控件和事件:
<SCRIPT LANGUAGE="VBScript" EVENT="OnClick" FOR="Button1">
<!--
MsgBox "Mirabile visu."
-->
</SCRIPT>
由于 <SCRIPT> 標記指定了事件和控件,所以不需要再用 Sub 和 End Sub 語句。