第 3 章 Web 脚本语言 VBScript

58
3 3 Web Web 第第第第 第第第第 VBScript VBScript 第第第第第第第第第第第第第第第 第第第第第第第 VBScript VBScript 第第第第第 第第第第第 第第第 ;、 第第第第第 第第第第第 第第第 ;、 第第第第 第第第第第第第第第第第第第 第第第第第第第第第第第第 、、、;。 第第第第 第第第第第第第第第第第第第 第第第第第第第第第第第第 、、、;。

description

第 3 章 Web 脚本语言 VBScript. 内容简介: 本章主要讲述了 VBScript 语言的用途;变量命名、注释标签、、操作符、各种语句的使用及常用函数;各种对象的属性和方法等。. 第 3 章 Web 脚本语言 VBScript. 3.1 VBScript 语言概述 3.2 VBScript 编程基础 3.3 VBScript 程序流程控制 3.4 过程 3.5 常用内部函数 3.6 对象 3.7 数据有效性验证实例 3.8 ActiveX 控件. 3.1 VBScript 语言概述. - PowerPoint PPT Presentation

Transcript of 第 3 章 Web 脚本语言 VBScript

Page 1: 第 3 章 Web 脚本语言 VBScript

第第 33 章章 WebWeb 脚本语言脚本语言 VBScripVBScriptt

第第 33 章章 WebWeb 脚本语言脚本语言 VBScripVBScriptt

内容简介:内容简介:本章主要讲述了本章主要讲述了 VBScriptVBScript 语言的用途;变量语言的用途;变量命名、注释标签、、操作符、各种语句的使用命名、注释标签、、操作符、各种语句的使用及常用函数;各种对象的属性和方法等。及常用函数;各种对象的属性和方法等。

Page 2: 第 3 章 Web 脚本语言 VBScript

第第 33 章章 WebWeb 脚本语言脚本语言 VBScripVBScriptt

第第 33 章章 WebWeb 脚本语言脚本语言 VBScripVBScriptt

3.1 VBScript3.1 VBScript 语言概述语言概述3.2 VBScript3.2 VBScript 编程基础编程基础3.3 VBScript3.3 VBScript 程序流程控制程序流程控制3.4 3.4 过程过程3.5 3.5 常用内部函数常用内部函数3.6 3.6 对象对象3.7 3.7 数据有效性验证实例数据有效性验证实例3.8 ActiveX3.8 ActiveX 控件控件

Page 3: 第 3 章 Web 脚本语言 VBScript

3.1 VBScript 语言概述 脚本语言出现以后,编写功能强大的

Web 页面就不再是一件困难的事情了,即使是初学者也能够十分方便地对 Web 页面进行控制,轻松地构造具有交互性的 Web 页面。

目前比较流行的脚本语言是 VBScript 、JavaScript 和 Jscript 。

Page 4: 第 3 章 Web 脚本语言 VBScript

3.1.1 VBScript 语言的特点1 .什么是 VBScript ? VBScript 是 Microsoft Visual Basic 的简化版本。

VBScript 是 Visual Basic 的子集 2 .易学易用VBScript 能轻易地把数据,数字和货币数据格式

化。在 Internet Explorer 中事件控制很方便。3 . VBScript 既可编写服务器脚本,也可编写客

户端脚本。

Page 5: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 11 . <SCRIPT> 标签一般形式: <SCRIPT> VBScript 代码 </SCRIPT>注意: VBScript 用句点在对象之间分层。 2 . <SCRIPT> 标签的 LANGUAGE 属性<SCRIPT LANGUAGE="VBScript">3 . <SCRIPT> 标签的 RUNAT 属性指定包含在 <SCRIPT> 标签中的脚本代码运行于服务端还是客户端,使

用方式如下:(注意文件要保存成 .asp ) <SCRIPT LANGUAGE="VBScript" Runat=server> ...... </script>

Page 6: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试——2

4 .注释标签的运用在加入了注释标签后, VBScript 代码如下所示:<SCRIPT LANGUAGE="VBScript"><!-- VBScript 代码--></SCRIPT>在 VBScript 代码外部加上一个注释标签。对于不能支持 VBScript

的浏览器来说, VBScript 代码是包含于注释之中的,所以不会显示到页面上,而 <SCRIPT> 标签和 </SCRIPT> 标签是不能识别的标签,也将被忽略,所以,在这种情况下,不会对页面的布局产生破坏作用。而支持 VBScript 的浏览器却能正确识别位于注释中的 VBScript 代码,从而加以解释执行。

Page 7: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 35 .简单的 VBScript 示例( 1 )<HTML><HEAD><TITLE> 一个 VBScript 示例 </TITLE>

<SCRIPT LANGUAGE="VBScript">

<!--

Window.Document.Write(" 这是一个 VBScript 的简单示例 ")

-->

</SCRIPT></HEAD><BODY></BODY></HTML>

Page 8: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 45 .简单的 VBScript 示例( 2 )<FORM><INPUT TYPE="button" VALUE="ALERT" OnClick="alerter

()"></FORM></BODY></HTML><SCRIPT LANGUAGE="VBScript"><!-- sub alerter() Window.alert(" 这是一个 VBScript 的简单示例 ") End sub--></SCRIPT>

Page 9: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 56 .下载时运行 VBScript 代码的位置 先直接在页面中写上表格的标签,然后运用 VBScript 代码在表格内写

字符串。我们可以将 VBScript 代码嵌入到标签 <TD> 和 <TD> 之间<HTML><HEAD><TITLE> 一个 VBScript 的简单示例</TITLE></HEAD><BODY><TABLE><TR><TD><SCRIPT LANGUAGE="VBScript"><!-- Window.Document.Write(" 这是一个 VBScript 的简单示例 ")--></SCRIPT></TD></TR></TABLE></BODY></HTML> 如果希望 VBScript 代码是在页面下载后立即执行,一般应将 VBScript

代码嵌入到页面的合适的位置。如果需要包含于页面元素之内,则应该将代码嵌入到相应的标签之内,如果希望 VBScript 代码运行结果处于页面的最上部,一般应该将代码放在 <HEAD> 标签和 </HEAD> 标签之间,并且不用函数或过程。

Page 10: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试——6

7 .调用时运行 VBScript 代码的位置一般情况下,我们最好是将 VBScript 代码放在 <HEAD> 标签和 </HEAD> 标签之间, <HTML><HEAD><TITLE> 一个 VBScript 示例 </TITLE><SCRIPT LANGUAGE="VBScript"><!--sub alerter() Window.alert (" 这是一个 VBScript 的简单示例 ")End sub--></SCRIPT></HEAD><BODY><FORM><INPUT TYPE="button" VALUE="ALERT" OnClick="alerter()"></FORM></BODY></HTML> 还有一种嵌入的方法,就是在页面元素事件处理中直接嵌入 VBScript 代码<INPUT TYPE="button" VALUE="ALERT" OnClick="Window.alert(' 这是一个 VBScript 的简单示例 ')"> 这样,在鼠标单击这个按钮时,可以直接调用 alert() 方法弹出警告框,而不必 编写 VBScript 的函数或过程。这种方法简洁明了,但是,一般只适用于在其中 嵌入少量 VBScript 代码的页面,如果 VBScript 代码数量增大,会使得 代码的可读性变得极差。

Page 11: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 78 .客户端脚本代码示例 客户端脚本由浏览器处理,必须把脚本代码用 <SCRIPT></SCRIPT> 标记嵌入 到 HTML 页面中去,仅嵌入客户端脚 本的网页可直接双击运行。 If IsNumeric(frmTmp.Text1.Value) Then

If frmTmp.Text1.Value <1 Or frmTmp.Text1.Value> 50 Then MsgBox" 请输入 1 到 50 之间的数字 !" Else frmTmp.Submit End If Else MsgBox" 请输入数字 !" End IFEnd Sub--></SCRIPT></HEAD><BODY bgColor="White"><H2> 请输入 1 到 50 之间的数字 :</H2><HR><form name="Form1"><INPUT Name="Text1" TYPE="TEXT"><INPUT Name="Button1" TYPE="BUTTON" VALUE="提交 "></FORM></BODY></HTML>

<HTML><HEAD><TITLE> 简单的 VBScript 程序 </TITLE><SCRIPT LANGUAGE=VBScript><!--Sub Button1_OnClick() Dim frmTmp '声明一个变量 Set frmTmp = Document.Form1

Page 12: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 89 .服务器脚本与示例 (1) 在 ASP 中,服务器脚本要用 ASP 分隔符 <% 和 %> 括起,

或者在 <SCRIPT></SCRIPT> 标记中用 RUNAT=Server表示脚本在服务器端执行。并要保存为 .asp 扩展名, .asp 网页不能直接双击运行,要在浏览器中输入相应的 URL (不是物理路径)才能运行。

注意:编写服务端脚本时不必再加注释标签,因为服务器必须能解释脚本,否则会引起错误。 VBScript 中的 MsgBox 和 InputBox 不能在服务端脚本中使用。 MsgBox用于显示一个信息框,而 InputBox 用于产生一个输入框。信息框和输入框都是用户界面元素,不能在服务器端执行。

Page 13: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 99 .服务器脚本与示例 (2)例如,下面的 VBscript 脚本在一个 ASP 网

页中自动执行:<% FOR myvar=1 TO 500%><B> Hello World!</B><BR> 图 3-

4 用 VBScript来创建<% NEXT %>

Page 14: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 10

9 .服务器脚本与示例 (3) 在 ASP 中除了用 <%= 和 %> 输出数据外,还经常用 ASP

的 Response 对象来输出数据。以下写一个简单用 ASP 的Response 对象进行输出的服务端脚本示例:

<% Response.Write "<table width=300><tr><td width=50>姓名 "

Response.Write "<td width=50> 性别 <td width=200>班级 "

Response.Write "<tr><td>张三 <td>男 <td>电子商务 01"

Response.Write "<tr><td>李四 <td>女 <td>电子商务 02"

Response.Write "</tr></table>"%>例 3-10 用 ASP 的 Response 对象来输出数据

Page 15: 第 3 章 Web 脚本语言 VBScript

3.1.2 VBScript 程序的编辑和调试—— 11

10.服务端脚本与与客户脚端本的混合对客户端脚本进行操作的服务端脚本示例: <%@ Language=VBScript %><% Option ExplicitDIM dtmTime,strservername,strserversoftw

are,intgreetingdtmTime=Time()strservername=Request.ServerVariables("s

erver_name")strserversoftware=Request.ServerVariables

("server_software")randomizeintgreeting=int( rnd * 3 )%><SCRIPT LANGUAGE=VBScript><!-- showIntroMsg()

function showIntroMsg() select case (<% =intgreeting %>) case 0 msg="当前WEB 服务器是 <% =strservername %>!" case 1 msg="当前时间是 <% =dtmTime %>!" case 2 msg=" 服务器正在运行 <% =strserversoftware %>!" End select Document.Write(msg)End function--></SCRIPT>

Page 16: 第 3 章 Web 脚本语言 VBScript

3.2 VBScript 编程基础3.2.1 数据类型1 .什么是 VBScript 数据类型? VBScript 只有一种数据类型,称 Variant 。2 . Variant子类型 除简单数字或字符串以外, Variant 可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。当然,从 Boolean值到浮点数,数值信息是多种多样的。 Variant包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进 Variant 中,而 Variant也会按照最适用于其包含的数据的方式进行操作。

Page 17: 第 3 章 Web 脚本语言 VBScript

3.2.2 常量和变量—— 11 .什么是常量常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。 VB

Script 定义了许多固有常数。2 .声明常量使用 Const语句可以在 VBScript 中创建用户自定义常数。例如:<% Const MyString = " 这是一个字符串。 "Const MyAge = 49 %>请注意字符串文字包含在两个引号 (“”) 之间。这是区分字符串型常数和

数值型常数的最明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如: <% Const CutoffDate = #6-1-03# %>可以一次定义多个常量,只要把每个常量定义用逗号隔开即可。3 . VBScript 变量 变量是计算机内存中已命名的内存位置,该位置可存储脚本 运行时能更改的信息。

Page 18: 第 3 章 Web 脚本语言 VBScript

3.2.2 常量和变量—— 24 .声明变量在 VBscript 脚本中,使用一个变量之前不需要专门声明它。例如(隐式声明变量) <HTML><HEAD><TITLE>sample VBScript</TITLE></HEAD><BODY><% myvar="你好,欢迎光临 !"%><%=myvar%></BODY></HTML>VBScript 中提供了 Option Explicit语句来强制显式声明变量,这样如果你在编写长

而复杂的程序时,如果敲错了变量的名字,将会产生错误,可以帮助调试脚本。 <%Option Explicit %><% DIM myvarmyvar=" 你好,欢迎光临 !" %><%=myvar%>

Page 19: 第 3 章 Web 脚本语言 VBScript

3.2.2 常量和变量—— 35 .给变量赋值创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如: B = 2006 .变量命名规则变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循:

( 1 )第一个字符必须是字母。( 2 )不能包含嵌入的句点。( 3)长度不能超过 255 个字符。( 4)在被声明的作用域内必须唯一。( 5 )不能使用 VBScript 中的保留字作为变量名。 在 VBScript 中给变量命名不区分大小写。命名变 量时,为便于记忆与使用最好能做到“顾名知义”。

Page 20: 第 3 章 Web 脚本语言 VBScript

3.2.2 常量和变量—— 47 .变量的作用域与存活期• 在函数外部声明的变量称为脚本级变量或全局变量,

即在同一页内的任何脚本命令均可访问和修改该变量的值。局部变量和全局变量可以重名。

• 变量存在的时间称为存活期。 Script级变量的存活期从被声明的一刻起,直到脚本运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明

它的过程识别。

Page 21: 第 3 章 Web 脚本语言 VBScript

3.2.2 常量和变量—— 58 .注释 VBScript 脚本 注释的语法是:Rem comment或' commentcomment 参数是需要包含的注释文本。 9 . VBScr

ipt 脚本中的续行符 在 VBScript 脚本中当一行写得很长时,程序的可读性会变得很差,如果从语法上没法换行,而我们又想换行时可使用续行符,续行符是空格紧跟一个下划线(“ _”)。

注意:一定不要忘记前面的空格。

Page 22: 第 3 章 Web 脚本语言 VBScript

3.2.3 运算符和表达式—— 11 .算术运算符( 1 ) ^ (幂运算符 ) ( 2 ) *(乘操作符)( 3) +(加操作符)( 4) - (减操作符)( 5 ) / (除操作符)( 6) \(整除操作符)( 7) mod (取模操作符)2 .连接运算符( 1 ) +(加操作符)( 2 ) &(连接运算符 )注意: +运算符也能进行字符串

的连接,但只能将两个字符串连接。 &运算符能强制性地将两个表达式(不论是什么类型)

做字符串连接。

3 .比较操作符( 1 ) = (等于操作符)( 2 ) <> (不等操作符)( 3) > (大于操作符)( 4) < (小于操作符)( 5 ) >= (大于等于操作符)( 6) <= (小于等于操作符)注意:除了数值类型之外,字符串类型也可以进行比较,在比较字符串的过程中, VBScript 把字符串中的每个字母转换成相应的 ASCII 码值,然后从第一个字符开始比较两个字符串中相应的字符,比较它们的 ASCII 码值。

Page 23: 第 3 章 Web 脚本语言 VBScript

3.2.3 运算符和表达式—— 24 .逻辑运算符 ( 1 ) and (与操作符)( 2 ) or (或操作符)( 3) not (非操作符)( 4) Xor操作符( 5 ) Eqv 操作符 :result = expr

ession1 Eqv expression2

如果 expression1 为

且 expression2 为

则 result 为

True True True

True False False

False True True

False False True

( 5 ) Eqv 操作符 : 也可用于字节位的比较,当两个表达式在相应的位上的值相等时,返回值为 True 。( 6) Imp操作符 :result = expression1 Imp expression2 执行逻辑蕴涵运算。

Page 24: 第 3 章 Web 脚本语言 VBScript

3.2.3 运算符和表达式—— 35 .运算符优先级

算术运算符 比较运算符 逻辑运算符描述 符号 描述 符号 描述 符号求幂 ^ 等于 = 逻辑非 Not

负号 - 不等于 <> 逻辑与 And

乘 * 小于 < 逻辑或 Or

除 / 大于 > 逻辑异或 Xor

整除 \ 小于等于 <= 逻辑等价 Eqv

求余 Mod 大于等于 >= 逻辑隐含 Imp

加 + 对象引用比较 Is

减 -

字符串连接 &

Page 25: 第 3 章 Web 脚本语言 VBScript

3.2.4 数组—— 11 .标量变量和数组变量多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量(即具有相同名子不同下标值的一组变量),称为数组变量。2 .声明固定数组数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 () 。与前面讨论的变量不同,数组在使用之前必须声明。注意: VBScript 中数组的下标从 0开始,因此每个数组的元素个数都比声明语句中的数字多在 VBScript 中对数组的每个元素都要分配空间,不要不切实际地声明太大的数组。3 .数组元素赋值在数组中使用索引为数组的每个元素赋值。从 0 到 10 ,将数据赋给数组的元素,如下所示:A(0) = 256A(1) = 324A(2) = 100...A(10) = 55

Page 26: 第 3 章 Web 脚本语言 VBScript

3.2.4 数组—— 24 .数组元素引用使用索引可以得到所需的数组元素的数据。例如: SomeVariable = A(8) 又如,你可以创建一个数组,用来存储你的站点上出售的一系列商品:<% DIM Product(10)Product(0)=”Trading Card”Product(1)=”Book on Active Sever Pages”Producr(2)=”Computer Monitor” %>5 .声明多维数组可以创建有多个下标的数组即多维数组。例:<% DIM Product(10,1)Product(0,0)= "Trading Card"Product(0,1)= "A very valuable trading card. "Product(1,0)= "Book on Active Sever Pages"Product(1,1)= "A comprehensive book on Active Sever Pages"Product(2,0)= "computer Monitor"Product(2,1)= "This monitor is in excellent shape. " %> 要创建一个多维数组,只要简单地在数组声明语句中增加一个维 数即可。象这样: DIM Product(10,10,10,10)

Page 27: 第 3 章 Web 脚本语言 VBScript

3.2.4 数组—— 36 .声明动态数组• 动态数组是运行时可以改变大小的数组。• 当声明一个动态数组时,你不需要指定数组的大小与维数,只需在数组名后加一对空括号。但在第一次给一个动态数组分配数值之前,必须用 Redim 语句指定它的大小与维数。

<% DIM Product()Redim Product(2)Product(0)= "Trading Card"Product(1)= "Book on Active Sever Pages"Product(2)= "Computer Monitor"Redim Preserve Product(3) Product(3)= "Coffee Cup" %>

Page 28: 第 3 章 Web 脚本语言 VBScript

3.2.4 数组—— 47 .数组函数( 1 ) UBound() 函数UBound()返回一个数组的大小。确切地说,它可以返回数组的某一维的大小。注意:虽然数组的某一维的第一个下标值总是 0 ,但其第一维总是用 1表示。( 2 ) Erase 语句 VBScript 有一个 Erase语句,可以用来操作固定大小的数组和动态数组。通过

对一个静态数组使用 Erase语句,你可以清除这个数组。如果该数组是一个字符串数组, Erase语句把该数组的所有元素重新初始化为空字符串“”。如果该数组是一个数值数组, Erase语句可以把该数组的所有元素重新初始化为 0 。

( 3 ) ISArray() 函数函数 ISArray() 可以用来测试一个变量表达式是否是一个数组。( 4 ) Join() 函数语法形式: Join(list[, delimiter])返回一个字符串,此字符串由包含在数组中的许多子字符串联接创建。参数: list 必选项。包含要联接的子字符串一维数组。Delimiter 可选项。在返回字符串中用于分隔子字符串的字符。

Page 29: 第 3 章 Web 脚本语言 VBScript

3.3 VBScript 程序流程控制3.3.1 条件控制语句 _11 .使用 If...Then...Else 进行判断( 1 )只有一个条件语句形式:第一种形式是单行语句形式:If 条件表达式 then 程序块第二种形式是块形式:If 条件表达式 then 语句块End If ( 2 )条件为 True 和 False 时分别运

行某些语句 If条件表达式 then 语句块 1 else 语句块 2End If

( 3 ) If 判断结构嵌套使用If条件表达式 0 then If条件表达式 1 then 语句块 1 else 语句块 2 End If else 语句块 3End If ( 4) elseIf 结构 If条件表达式 1 then 语句块 1 elseIf条件表达式 2 then 语句块 2 elseIf条件表达式 3 then 语句块 3 elseIf条件表达式 n then 语句块 nelse语句块 n+1End If

Page 30: 第 3 章 Web 脚本语言 VBScript

3.3.1 条件控制语句 _22 .使用 Select Case 进行判断 Select Case语句的一般格式为:Select Case 测试表达式Case 表达式列表 1[ 语句块 1][Case 表达式列表达 2[ 语句块 2]] ……[Case Else表达式列表 n[ 语句块 n]]End Select

Page 31: 第 3 章 Web 脚本语言 VBScript

3.3.2 循环控制语句—— 1循环可分为三类:• 在条件变为 False 之前重复执行语句

• 在条件变为 True 之前重复执行语句

• 按照指定的次数重复执行语句。 1 . Do...Loop 循环 可以使用 Do...Loop 语句多次(次

数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。

Do...Loop 语句形式: (如右)

第一种语法形式是先判断循环条件Do [{While | Until} condition][statements][Exit Do][statements]Loop 第二种语法形式是先执行一次循环,再判断循环条件Do[statements][Exit Do][statements]Loop [{While | Until} condition]

Page 32: 第 3 章 Web 脚本语言 VBScript

3.3.2 循环控制语句—— 22 . While...Wend循环• While...Wend 语句当指定的条件为 True 时,执行语句。

语法形式:While condition [statements]Wend3 .使用 For...Next• For...Next 语句是以指定次数重复执行一组语句。

一般形式:For counter = start To end [Step

step][statements][Exit For][statements]Next

例:<script language=VBScript>Sub MyProc(intNum) Document.Write intNum & "<BR>"End SubDim xFor x = 1 To 50 MyProc xNext</script>

Page 33: 第 3 章 Web 脚本语言 VBScript

3.3.2 循环控制语句—— 34 .使用 For Each...NextFor Each...Next 循环与 For...Next 循环类似。 For

Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。

For Each...Next 语句的一般形式如下:For Each element In group[statements][Exit For][statements] Next [element]

Page 34: 第 3 章 Web 脚本语言 VBScript

3.3.2 循环控制语句—— 45 . On Error 语句语法形式: On Error Resume Next当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。

Sub cmdSubmit_OnClick On Error Resume Next

Myvar="aaa"+30 ' 显示引起错误的描述 If Err <> 0 Then Msgbox "An error occurred. " & Err.Description

Err.Clear End if

End Sub

Page 35: 第 3 章 Web 脚本语言 VBScript

3.4 过程3.4.1 Sub 过程1 . Sub 过程:声明 Sub 过程的名称、参数以及构成其主体的代码。Sub name [(arglist)][statements][Exit Sub][statements]End Sub 注意:过程可以使用没有在过程内显式声明的变量,但只要有任何 script级定义的名称与之同名,就会产生名称冲突。如果过程中引用的未声明的变量与其他的过程、常数或变量的名称相同,则会认为过程引用的是脚本级的名称。要避免这类冲突,请使用 Option Explicit语句可强制显式声明变量。

2 . Call语句:将控制权传递给 Sub 或 Function 过程。[Call] name [argumentlist] 注意:在调用过程时,不必使用 Call关键字。然而,如果使用 Call关键字调用

要求参数的过程,则必须用括号将 argumentlist括起来。如果省略 Call关键字,那

么必须也同时省略 argumentlist参数两边的括号。使用 Call语法调 用内部函数或使用用户自定义函数,函数返回值都会被放弃。

Page 36: 第 3 章 Web 脚本语言 VBScript

3.4.2 Function 过程 声明 Function 过程的名称、参数以及构成其主体

的代码,其一般语句形式是:Function name [( arglist)][statements][name = expression][Exit Function] [statements][name = expression]End Function

Page 37: 第 3 章 Web 脚本语言 VBScript

3.5 常用内部函数3.5.1 输入、输出函数( 1 ) InputBox 函数 语法形式是: InputBox(prompt[,title][,default][,

xpos][,ypos][,helpfile,context]) ( 2 ) MsgBox 函数 在对话框中显示消息,等待用户单击按钮,并返回

一个值指示用户单击的按钮。 MsgBox(prompt[,buttons][,title] [,helpfile,context])

Page 38: 第 3 章 Web 脚本语言 VBScript

3.5.2 字符串函数—— 1( 1 ) Left 函数语法形式: Left(string,length)返回包含字符串中从左边算起指定数量的字符。( 2 ) Right 函数语法形式: Right(string,length)返回包含从字符串右边取出的指定数量的字符。( 3) Mid 函数语法形式: Mid(string,start[,length])返回包含字符串中指定数量的字符。( 4) Space 函数语法形式: Space(number)返回特定数目的空格。

Page 39: 第 3 章 Web 脚本语言 VBScript

3.5.2 字符串函数—— 2( 5 ) LTrim、 RTrim与 Trim 函数语法形式: LTrim(string)、 RTrim(string)、 Trim(strin

g)返回包含指定字符串的拷贝,没有前导空白 (LTrim)、尾随空白 (RTri

m) 或前导和尾随空白 (Trim) 。( 6) InStr 函数语法形式: InStr([start,]string1,string2[,compare])返回一指定字符串在另一字符串中最先出现的位置。( 7) LCase 函数语法形式: LCase(string)返回转成小写的 String 。( 8) UCase 函数语法形式: UCase(string)返回转成大写的 String 。( 9) Len 函数语法形式: Len(string|varname)返回包含字符串内字符的数目,或是存储一变量所需的字节数。

Page 40: 第 3 章 Web 脚本语言 VBScript

3.5.2 字符串函数—— 3( 10 ) Chr 函数语法形式: Chr(charcode)返回 ASCII 码表与 charcode 对应的字符。( 11 ) Asc 函数语法形式: Asc(string)返回一个代表字符串中首字母的字符 ASCII 码。( 12 ) Split 函数:语法形式: Split(expression[,delimiter[,count[,start]]])返回下标从 0开始的一维数组,包含指定数目的子字符串。( 13) Replace 函数返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。语法形式:

Replace(expression,find,replacewith [,compare[,count[,start]]])

Page 41: 第 3 章 Web 脚本语言 VBScript

3.5.2 字符串函数—— 4( 14) StrComp 函数语法形式: StrComp(string1, string2[, compare])返回一个表明字符串比较结果的值。( 15 ) String 函数语法形式: String(number,character)返回 Variant(String) ,包含指定长度重复字符的字符串。( 16) Filter 函数Filter 函数功能是过滤一个字符串数组,返回符合条件的子

集合数组。语法形式:Filter(InputStrings,Value[,Include[,Compare]])( 17) StrReverse 函数语法形式: StrReverse(string1)返回一个字符串,其中一个指定子字符串的字符顺序是反向

的。

Page 42: 第 3 章 Web 脚本语言 VBScript

3.5.3 日期函数—— 1名称 语法 功能 例句

Cdate CDate(Date)返回 Date类型的表达式,

Date参数是任意有效的日期或字符串表达式。

MyDate = "October 19, 1962"MyShortDate = CDate(MyDate)

Date Date 返回当前系统日期。 MyDate = Date

DateAddDateAdd(interval,

number, Date)

返回已添加指定时间间隔的日期。

下例将 95年 1月 31日加上一个月:

NewDate=DateAdd("m",1,"31-Jan-95")

DateDiffDateDiff(interval,D

ate1,Date2) 返回两个日期之间的时间间隔。

theDate ="31-Jan-95"xx=DateDiff("d",theDate,Now)

DatePartDatePart(interval,D

ate)

返回给定日期的指定部分。参考 interval参数的可选值。

GetQuarter=DatePart("q",TheDate)

DateSerialDateSerial(year,mo

nth,Day)

对于指定的年、月、日,返回 Date子类型的 Variant。

MyDate2=DateSerial(1990-10,8-2,1)

DateValue DateValue(Date)返回 Date子类型的变量。

Date参数应是字符串。 DateValue("September11,1963")

Day Day(Date)返回 1到 31之间的一个整数,代表某月中的一天。

MyDay=Day("October 19,1962")'MyDay=19。

Page 43: 第 3 章 Web 脚本语言 VBScript

3.5.3 日期函数—— 2Hour Hour(Time)

返回 0到 23之间的一个整数,代表某小时数。 Time参数是时间表达式。

MyTime=NowMyHour=Hour(MyTime)

IsDateIsDate(expression)

返回 Boolean值指明某表达式是否可以转换为日期。expression参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。

MyDate="October 19,1962"YourDate= #10/19/62#NoDate="Hello"MyCheck=IsDate(MyDate)'TrueMyCheck=IsDate(YourDate)'TrueMyCheck=IsDate(NoDate)'False

Minute Minute(Time)返回 0到 59之间的整数,代表分钟。 MyVar=Minute(Now)'=41

Month Month(Date)返回 1到 12之间的一个整数,代表某月份数。

MyVar=Minute("October 19, 1962")'MyVar=10

MonthName

MonthName(month)

返回表明指定月份的字符串。 month是数值

thismanth=MonthName(10)'’thismanth="October"

Now Now返回系统的当前日期和时间值。

Today=Now'today="02-07-04 11:41:14"

Page 44: 第 3 章 Web 脚本语言 VBScript

3.5.4 转换函数—— 1函数 功能说明与使用举例

Asc函数

返回与字符串的第一个字母对应的 ANSI字符代码。Dim MyNumberMyNumber=Asc("A")'返回 65。MyNumber=Asc("a")'返回 97。MyNumber=Asc("Apple")'返回 65。

CBool函数

返回表达式,此表达式已转换为 Boolean子类型的 Variant。Dim A, B, ChA=5:B=5     ' 初始化变量。Ch=CBool(A=B)   'Ch为 True。

CByte函数

返回表达式,此表达式已被转换为 Byte子类型的 Variant。Dim MyDouble, MyByteMyDouble=125.5678       ' MyDouble是一个双精度值。MyByte=CByte(MyDouble)    ' MyByte包含 126。

CCur函数

返回表达式,此表达式已被转换为 Currency子类型的 Variant。Dim MyDouble,MyCurrMyDouble=543.214588          ' MyDouble 是双精度的。MyCurr=CCur(MyDouble*2) ' 把 MyDouble*2(1086.429176)的结果转换为

 'Currency(1086.4292)。

Page 45: 第 3 章 Web 脚本语言 VBScript

3.5.4 转换函数—— 2CDate函数

返回表达式,此表达式已被转换为 Date子类型的 Variant。MyTime="4:35:47 PM"              ' 定义时间。MyShortTime=CDate(MyTime) ' 转换为日期数据类型。

CDbl函数

Chr函数

返回与指定的 ANSI字符代码相对应的字符。Dim MyCharMyChar=Chr(65)    ' 返回 A。MyChar=Chr(97)    ' 返回 a。MyChar=Chr(62)    ' 返回 >。MyChar=Chr(37)    ' 返回 %。

CInt函数 IntX= "35.5 " : Cint(IntX) '返回 36。CLng函数 IntX= "35500000 " : CLng(IntX) '返回 35500000

CSng函数 VarX= "35500000.123456 " : CSng(VarX) '返回 35500000.123456

CStr函数 VarX= 35500000 : CStr(VarX) '返回 " 35500000"

Hex函数

返回表示十六进制数字值的字符串。Dim MyHexMyHex=Hex(5)   ' 返回 5。MyHex=Hex(10)   ' 返回 A。MyHex=Hex(459)   ' 返回 1CB。

Oct 函数返回表示数字八进制值的字符串。Dim MyOctMyOct = Oct(4)     ' 返回 4。MyOct = Oct(8)     ' 返回 10。MyOct = Oct(459)   ' 返回 713。

Page 46: 第 3 章 Web 脚本语言 VBScript

3.5.5 VBScript 中的几个数学函数函数 ABS(number)返回一个绝对值。函数 INT(number)四舍五入后最接近的整数。函数 FIX(number) 也返回最接近的整数,不过这个

函数对复数是向下舍入而不是向上舍入。函数 Round(number)允许你指定舍入后小数部分的

位数。函数 SGN(number)返回 1 , 0 ,或- 1 ,分别对应

其参数是正数,零,或复数。函数 Rnd([number]) 产生一个 0~1 之间的随机数。

Page 47: 第 3 章 Web 脚本语言 VBScript

3.6 对象3.6.1 文档对象模型( DOM )

Page 48: 第 3 章 Web 脚本语言 VBScript

3.6.2 Windows 对象1 . Window对象的属性( 1 ) Closed、 Opener 属性Closed属性可以判断一个窗口是否被关闭; Opener属性可以通过一个窗口来操纵其父窗口。( 2 ) defaultStatus 、 status 属性defaultStartus属性的值是在浏览器窗口下面的状态栏中缺省显示的信息, status属性的值

是状态栏中当前显示的信息。( 3 ) Document 、 History 、 Location属性Document属性、 History属性、 Location属性就是浏览器对象中的 Document 对象、 His

tory对象、 Location 对象,2 . Window对象的方法( 1 ) Open( 页面地址,窗口名称,窗口风格 ) 和 Close() 方法 Open() 方法能够打开一个窗口,并且,在打开窗口的时候,还能够指定窗口的风格, Op

en() 方法返回的是窗口的引用,它有 3个参数:页面地址、窗口名称和窗口风格。 Close() 方法可以自动关闭一个窗口,

( 2 ) alert( 字符串 )alert() 方法的功能是弹出一个警告框,在警告框内显示字符串文本, 3 . Window对象的事件Window 对象的事件有 9种,较常用的有 OnLoad、 OnUnLoad、 OnFocus、 OnScroll 。

Page 49: 第 3 章 Web 脚本语言 VBScript

3.6.3 Document 对象1 . Document 对象的属性( 1 ) alinkColor、 vlinkColor、 bgColor、 fgColor 和 linkColor属性这些属性是页面的颜色设置。 ( 2 ) Title属性Title属性中存储的是页面的标题,就是在 <TITLE> 标签中所定义的标题。 ( 3) anchors、 applets、 forms、 images、 frames属性这些属性中存放着对象的数组。 2 . Document 对象的方法( 1 ) Write() 方法Write() 方法的功能就是向页面内写入文本或者标签。 ( 2 ) Open() 和 Close() 方法Open() 方法的功能就是打开一个新文档,而 Close() 方法的功能就是关闭当前文档。

Page 50: 第 3 章 Web 脚本语言 VBScript

3.6.4 History 对象1 . History 对象的属性• Navigator 浏览器和 IE 浏览器对于 History对象的属性不完全兼容,它们有一个相同的属性── length 属性,在 length属性中记录当前浏览器访问历史记录的数量,例如,我们可

2 . History 对象的方法• History对象的 back() 方法可以载入历史记录中前

一个历史记录的 URL 地址, forward() 方法可以载入历史记录中下一个历史记录的 URL 地址, go() 方法可以载入历史记录中任何 一个历史记录的 URL 地址。

Page 51: 第 3 章 Web 脚本语言 VBScript

3.6.5 Navigator 对象( 1 ) appName属性 通过 Navigator 对象的 appName属性可以获得浏览器的名称。

( 2 ) appCodeName属性 通过 appCodeName属性可以获得浏览器代码名称。( 3) appVersion属性 通过 appVersion属性可以获得浏览器的版本信息以及浏览

器运行平台 的信息 ( 4) userAgent属性 在 HTTP协议中,客户端向服务器端请求时,会发出一段 U

SER-AGENT信息, Navigator 对象的 userAgent属性值就是 USER-AGENT信息。

Page 52: 第 3 章 Web 脚本语言 VBScript

3.6.6 Form 对象 一个表单隶属于一个文档,对于表单对象的引用可以通过

使用隶属文档的表单数组进行引用,即使在只有一个表单的文档中,表单也是一个数组的元素,其引用形式如下:

Document.forms(0)注意:表单数组引用是采用 form 的复数形式 forms ,数组的

下标总是从 0开始。在对表单命名后,也可以简单地通过名称进行引用

方法共有 2 种情况。( 1 ) reset()reset() 方法将表单中所有元素值重新设置为缺省状态。( 2 ) submit()submit() 方法将表单数据发送给服务器的 ASP 程序处理,如

果在表单中定义了 Submit 按钮,则 submit() 方法执行后的效果与单击 Submit 按钮效果是相同的。

Page 53: 第 3 章 Web 脚本语言 VBScript

3.6.7 文本框对象1 .文本框对象的属性、方法和事件2 .属性: defaultValue 、 form 、 name 、 type 、 value3 .方法( 1 ) blur() : blur() 方法可以释放表单元素的输入焦点。 ( 2 ) focus() : focus() 方法使得表单元素获得输入焦点( 3) select() : select() 方法使得文本框中文本被选中。4 .事件( 1 ) OnBlur :在文本框失去焦点时,触发之。( 2 ) OnChange :只有当用户修改了文本框中的文本,然后失去焦点后才触发。( 3) OnFocus :当文本框得到焦点时,触发 OnFocus 事件。( 4) OnSelect :当文本框中文本被选定时,触发 OnSelect 事件。( 5 ) OnKeyDown :文本框在获得焦点的状态下,用户按下一个键时触发 OnKeyDown 事件。( 6) OnKeyUp :文本框在获得焦点的状态下,用户松开一个键时触发 OnKeyup 事件。( 7) OnKeyPress :文本框在获得焦点的状态下,用户按键动作完成之后出发 OnKeyPress 事件。 5 .口令对象在口令对象中,输入文本不会直接显示,而是以星号代替。它的属性、方法与事件和文本框对象是一致的。6 .文本区对象文本区对象使用 <TEXTAREA> 标签,而文本框对象使用 <INPUT> 标签。7 .隐藏对象隐藏对象是一个比较特殊的对象,它并不在表单中显示出来。除了隐藏对象的 type属性值为 hidden 之外,隐藏对

象和文本框对象在属性上是一致的。

Page 54: 第 3 章 Web 脚本语言 VBScript

3.6.8 按钮对象1 .按钮对象的属性、方法和事件2 .属性: form 、 name 、 type 、 value3 .方法: blur() 方法可以释放按钮的焦点;按钮的 click() 方法可以模仿按钮的单击动作,但并不触发按钮的 OnClick事件处理函数;而 focus() 方法则可使按钮获得焦点。

4 .事件( 1 ) OnBlur :当按钮失去焦点时,触发 OnBlur 事件。( 2 ) OnClick:当鼠标单击按钮时,触发 OnClick事件( 3) OnFocus :当按钮获得焦点时,触发 OnFocus 事件。( 4) OnMouseDown :当鼠标单击按钮时,在按下鼠标时,触发 OnMous

eDown 事件。( 5 ) OnMouseUp :当鼠标单击按钮时,在松开鼠标时,触发 OnMouseU

p 事件5 . Submit按钮对象Submit 的 type属性 submit ,单击 Submit 会将表单数据向服务器器程序发送。

6 . Reset按钮对象Reset 的 type属性是 reset ,单击 Reset 后会将表单中所有元素恢复为缺省值。

Page 55: 第 3 章 Web 脚本语言 VBScript

3.6.9 单选框对象和复选框对象1 .单选框的属性、方法和事件2 .属性( 1 ) checked: checked属性反映了单选框的状态,即选中或者不选中。( 2 ) defaultchecked:说明了在一组单选框中哪一个单选框在缺省状态下是选

中的。( 3 ) form : form 属性反映了包含单选框的表单。( 4 ) name : name 属性即为单选框的名称,一组单选框应该具有相同的名称。( 5 ) type :单选框的 type 属性为 radio。( 6 ) value : value 属性是描述单选框的相关信息 3 .方法 blur() 方法用于释放单选框的焦点;单选框的 click() 方法可以模拟单选框的单击动作,但并不触发单选框的 OnClick 事件处理函数;另外, focus() 方法可使单选框获得焦点。

4 .事件( 1 ) OnBlur :当单选框失去焦点时,触发 OnBlur 事件。( 2 ) OnClick :鼠标单击单选框时,触发 OnClick 事件 5 .复选框的属性、方法和事件 复选框和单选框是完全不同的两种标签,一组复选框之间可能互 不影响,每个都是独立的设置。

Page 56: 第 3 章 Web 脚本语言 VBScript

3.6.10 选择列表对象1 .选择列表的属性、方法和事件2 .属性:( 1 ) form : form 属性反映了包含选择列表的表单。( 2 ) length( 3 ) name : name 属性值即为选择列表的名称。( 4 ) options( 5 ) selectedIndex3 .方法blur() 方法用于释放选择列表的焦点focus() 方法则可以使选择列表获得焦点。4 .事件( 1 ) OnBlur :当选择列表失去焦点时,触发 OnBlur 事件。( 2 ) OnChange :当用户在选择列表中作出新的选择时,触发 OnChange 事件。

( 3) OnFocus 当选择列表获得焦点时,触发 OnFocus 事件。

Page 57: 第 3 章 Web 脚本语言 VBScript

3.6.11 Location对象1 . Location对象的属性当浏览器访问某个站点时,完整的 URL 地址如下所示:协议名称 ://主机名称 : 端口号 / 页面路径 #页面内锚标 ? 搜索信

2 . Location对象方法Location 对象的方法能将页面刷新或将页面导航到另外一个

URL 地址。( 1 ) assign(URL 地址)方法assign() 方法能够将页面导航到另外一个地址上去。 ( 2 ) reload() 方法运用 reload() 方法能够将页面全部刷新。 ( 3) replace(URL 地址 ) 方法 replace() 方法可以使用 URL 地址将当前页面代替。

Page 58: 第 3 章 Web 脚本语言 VBScript

3.8 ActiveX 控件• ActiveX 是一套与与语言无关的内部操作技术。它使

得采用不同语言编写的软件组件能够在网络环境中一起工作。 ActiveX 的核心技术是 COM 和 DCOM 。 ActiveX 控件是采用 COM创建的可重用的小对象。使用 ActiveX 控件的目的是进行可视化编程, ActiveX控件采用运行中的 DLL 的方式来实现,通常有一个 .ocx扩展名。

• 在 HTML 中使用 ActiveX 控件,要用 <OBJECT> 标签,一般还要使用 <PARAM> 标签来设置 ActiveX 控件的属性。

• 使用 ActiveX 控件要求比较高,如自注册、属性表显示、事件生成等。