第 7章 网页制作脚本语言
前言
在涉及脚本的网页制作中,VBScript与
JavaScript是使用最广泛的两种脚本语言,本
章将讲述 VBScript的语言基础,程序控制流
程,函数与对象的使用,以及 VBScript编程
的高级方法。
7.1 VBScript与 JavaScript
7.1.1 VBScript与 JavaScript
VBScript和 JavaScript是目前比较流行的
脚本语言,都可以用来建立交互式的 WEB
应用程序,脚本语言是一种介于 HTML语言
和 C++,Visual Basic等程序设计语言之间的
语言,它在形式和功能上可能更接近后者,
但它必竟不是一个应用程序开发语言。
所以它的语法规则没有一般的编程语言
那样严格和复杂,也无须编译,无论是
VBScript还是 JavaScript,它们都是跨平台基
于对象的脚本语言,可以直接嵌入到 HTML
文档中,浏览器能够理解其中的语句,并
能在网页下载后对这些语句进行解析执行,
下因为如此,读者也可以在浏览器中通过
查看源代码直接阅读页面中的 VBScript或
JavaScript代码。
7.1.2 对象的事件、属性和方法
如今,面向对象的概念已深入人心,
我们经常使用的程序设计语言,如 Visual
Basic,C++,JAVA等都是面向对象的编程
语言,虽然说,VBScript和 JavaScript还不算
是面向对象的编程语言,但它们都是基于对
象的语言,因此我们有必要了解一下对象的
属性、事件、和方法的概念。
对象
对象就是具有一定特性,能进行相关操
作的实体,有的对象还可以对外部环境的变
化做出响应
对象的属性、事件、和方法的概念
对象的属性就是描述对象特征的数据
对象的方法就是对象能够进行的操作
对象的事件则是能够被对象识别的固定动作
7.1.3 客户端和服务器端的脚本语言
在网页的制作中,我们可以用客户端的
脚本语言(通常是 VBScript语言和 JavaScript
语言)来控制页面,对页面中某些事件做出
响应,例如,在用户提交数据时进行有效性
验证以及数据查找等。通过使用客户端的脚
本语言,可以创建动态网页,减轻服务器的
负担。
但是,如果所有的数据存取都需要通过
客户端脚本来处理的话,那么在客户机与
服务器之间传送的数据量将是非常大的,
它会使服务器的速度慢得惊人,令用户无
法忍受。因此,大量的数据处理(例如对
大型数据库的存取)应该在服务器端完成。
而且由于客户的脚本是公开的,任何人都
可以查看和分析它的源代码,所以对于有
保密要求的数据,必须在服务器端处理。
7.1.4 脚本引擎
脚本引擎( Scripting Enging) 是处理特
定脚本命令的程序。在使用脚本语言之前,
我们需要在 WEB服务器上安装脚本引擎,只
要 WEB服务器端支持合适的脚本引擎,我们
可以使用任何脚本语言。 Vbscript所用的脚
本引擎是 vbscript.dll,而 JavaScript的脚本引
擎是 jscript.dll。
7.2 使用 VBScript 脚本语言
VBScript 作为一种脚本语言,可以自由
地嵌入任何支持该语言的应用程序中,以增
强应用程序的功能,其应用领域十分广泛,
本节通过一个实例,说明在 HTML网页中使
用 VBScript 的基本方法。
7.2.1 VBScript 及其主要功能
VBScript 是 Visual Basic 程序设计语言
家族中的新成员,它以 Visual Basic 语言为
基础提供了编程的功能,在脚本开发的场合
中,VBScript 得到了广泛的应用,其中包括
在 Internet Explorer浏览器上编写客户端脚本,
也包括在 Internet Information Sever 上编写服
务器端脚本。
7.2.2 在 HTLM 页面中使用 VBScript
VBScript不能用来编写单独的应用程序,它
必须嵌入到 HTLM页面中去。
脚本代码能够嵌入到 HTLM 文档的任何
地方,但一般都是将所有的脚本代码集中放
在 HEAD部分中,这样可以确保在 BODY部
分调用代码之前所有脚本代码都被读取并解
码。脚本代码以 <SCRIPT>开始,以
</SCRIPT>结束。
<SCRIPT>标记的一般格式是:
<SCRIPT LANGUAGE="language"
[EVENT="event"] [FOR="object"]>
<!- -
脚本代码
- ->
</SCRIPT>
其中,LANGUAGE 属性定义脚本代码
所用的脚本语言,EVENT 属性定义与该脚
本部分相关联的事件,FOR 属性定义与事件
相关联的对象。脚本部分的注释标记 <!- -和 -
-> 不是必须的,但一般应加上,因为有了注
释后,脚本代码就可以不被那些不支持脚本
的浏览器处理。
例 7-1-1:
?当用浏览器打开并读取该文档时,将显示一
个文本框和一个按钮。在文本框中输入正确
的数据后(如:图 7-1),单击“提交”按钮,
浏览器会查找并执行事件过程
Button1_OnClick。 执行时将调用表单对象的
Submit 方法将数据递交到服务器。若输入的
数据不正确,如不是数字或小于 1或大于 50,
则会弹出消息框提示输入正确的数字。
7.3 VBScript 基础
?VBScript是 VB的一个子集,编程方法和
VB基本相同,但 VB中的许多特性(如类
和 API调用等)在 VBScript中都被删去了。
在这一节我们先来初步认识 VBScript的基
本情况,并学习 VBScript语言的基础知识,
包括该语言的数据类型、常量和变量的一
些规定、表达式与运算符等。
7.3.1 VBScript数据类型
?虽然 Visual Basic中有许多种数据类型,但是在
VBScript中,只支持一种数据类型,即 Variant
( 变体型)
Variant( 变体型)
?Varint是一种很特殊的数据类型,根据它使
用方式的不同,可以代表各种数据类型。如
果我们将一个变量赋值为数字,那么在引用
这个变量的时候,它将作为数字使用;如果
我们将一个变量赋值为字符串,那么我们可
以对这个变量进行字符串的种操作。
?在实际使用的过程中,VBScript可以根据在
变量中存储的数据识别其类型。
?在 VBScript识别的过程中,除了数字和字符
串之外,还包括了布尔类型、时间类型、货
币类型等等,我们将其称为子类型
( Subtypes)。
?在表 7-1中,列举了 VBScript中的数据子类型。
?其中,无效类型对许多人来说,也许是比较
难以理解的一种类型,它不像前面几种类型
那样直观,无效类型的数据就是 Null。
类 型 说 明
?Empty 空类型,代表未初始化的 Variant变量
值,如果变量是数字,那么它为 0,如果变
量是字符串,那么它为长度为 0的字符串
?Null 无效类型,说明在变量中保存的是无效
的数据
?Boolean 布尔类型,取值为 True或者 False
?Byte 字节类型,取值范围是从 0到 255的整数
?Integer 整数类型,取值范围是从 -32768到
32767的整数
?Currency 货币类型,取值范围从 -
922,337,203,685,477.5808到
922,337,203,685,447.5807
?Long 长整数类型,取值范围是从 -
2,147,483,648到 2,147,483,647的整数
?Single 单精度浮点类型,负数取值范围从 -
3.402823E38到 -1.401298E-45,正数取值范围
从 1.401298E-45到 3.402823E38
?Double 双精度浮点类型,负数取值范围从 -
1.77797693123686232E308到 -
4.94065645841247E-324,正娄取值范围从
4.94065645841247E-324到
1.7779769312386232E308
?Date(Time) 日期类型,可以代表从 100年 1月 1
日到 9999年 12月 31日的日期
?String 字符串类型,字符串的长度是可变的,
最长可达 20亿个字符
?Object 对象类型
?Error 错误编号类型
7.3.2 VBScript变量
?使用脚本语言时,变量是其中最基本的元素,
脚本执行过程中,往往需要用一个单元将信
息存储起来,变量就是这样的一个命名的存
储单元,存储在这个单元中的数据就是变量
的值,使用变量时,一般要先声明变量,而命
名变量时也要按照 VBScript的命名要求才能
正确命名变量。
1,声明变量
?VBScript和 Visual Basic一样,在使用变量前
可以不对变量声明
?如下例中,我们用到了一个变量 Msg,但并
未预先对它进行声明,这并不影响脚本的执
行。。
例 7-3-1,在脚本中未声明而使用
一个变量
?在这个页面中,执行的结果是在页面上显示
字符串 HELLO。 在 VBScript中,不声明而直
接使用变量,称为对变量的隐式声明。
( 1) Option Explicit
?Option Explicit语句强制要求显式声明脚本中
使用的所有变量,在使用这条语句后,必须
使用 Dim,Private,Public或者 ReDim语句声
明所使用的变量。 ]
?注意,Option Explicit语句在页面中的位置很
特殊,它必须放置子所有 HTML文本和脚本
命令之前。
( 2) Dim
?在声明变量的时候,我们一般使用 Dim语句,
其语法格式为:
?Dim 变量名 [(下标) ]
?其中,“下标”在声明数组时,代表数组的
上界。
?例如,Dim Item ' 声明变量 Item
( 3) Public
?使用 DIM语句可以在脚本的过程中声明的变
量,也可以在过程外声明变量。在过程中声
明的变量称为过程变量,在过程外声明的变
量称为脚本级变量。过程级变量只能应用于
过程中,脚本级变量可以应用于脚本中所有
的过程。
?Public 语句只能声明脚本级变量,运用 Public
声明的变量可以运用于所有项目的全部脚本
中,其语法格式如下:
?Public 变量名 [(下标) ]
( 4) Private
?Private语句和 Public语句是相对的,Private语
句也只能声明脚本级变量,但运用 Private语
句声明的变量只能在声明该变量的脚本中使
用。其语法格式如下:
?Private 变量名 [(下标) ]
2,给变量赋值
?我们可以用如下语句给变量赋值
?MyVar=200
7.3.3 VBScript常量
?常量和变量一样可以赋予数值,但是常量和
变量有所不同,变量可以反复赋值,而常量
的数值一旦确定下来之后就不能发生变化了。
此外,VBScript还定义了许多系统常量,这
无疑大大方便了程序员的开发工作。
1,声明自定义常量
?常量声明的语法格式如下:
?Coust 常量名 =<表达式 >
?其中,<表达式 >即是常量的值。
?例如,Coust PI=3.14 声明常量 PI
?在声明常量时,我们也可以加上 Public 和
Private前缀来设置常量的作用域,设置方式
与变量相同。
?缺省情况下,在过程中声明的常量具有过程
级作用域,在过程外声明的常量具有脚步本
级作用域 。
?在常量命名时,也遵循变量的命名规则,但
为了将常量与变量区分开来,通常将常量名
全部大写。
2,使用固有常量
?在 VBScript中定义了固有常量,设计人员可
以在程序中直接引用这些常量。 VBScript中
的固有常量包括:颜色常量、比较常量、日
期和时间常量,日期格式常量,DriveType常
量,文件输入 /输出常量等。
7.3.4 VBScript表达式与运算符
?运算是指对数据进行加工处理。基本的运算
关系可以用一些简洁的符号来描述,这些符
号称为运算符,被运算的数据则称为操作数,
操作数可以是变量、常量,也可以是函数。
将运算符和操作数连接起来,就构成了表达
式。在 VBScript中可以进行四种类型的运算,
即算术运算、连接运算、关系运算和逻辑运
算。
1,算术运算
?算术运算就是人们熟悉的数学运算,如:加
( +)、减( -)、乘( *)、除( /)、整除
( \,如 5\2 等于 2)、取余( Mod,如 7
Mod 2 等于 1)、指数( ^)和一元减(数值
取反,如 -( -5)等于 5)。
2,连接运算
?连接运算是将两个字符表达式连接起来,生
成一个新字符串。连接运算符有两个,即 +
和 &。
3.关系运算符
?关系运算是将两个操作数进行比较,判断其
关系,然后返回一个逻辑值,表明比较操作
的结果是真还是假,常用的关系运算符有:
等于( =)、不等于( <>)、大于( >)、小
于( <)、大于等于( >=)和 对象关系( Is)
用来比较对象类型。
?在关系运算中,如果两个操作数都是数值,
那么将进行数值比较。如果两个操作数都是
字符串,那么将进行字符串的比较。如果一
个操作数是数值,另外一个操作数是字符串,
VBScript则假定任何数值都比字符串要小。
?注意:如果关系运算中的任何操作数为 Null,
那么表达式返回的结果既不为 True,也不为
False,而是 Null。
4.逻辑运算
?逻辑运算通常也称为布尔运算,专门用于逻
辑值之间的运算。常见的逻辑运算符及运算
规则见表 7-3:
5.运算符的优先级
?在 VBScript中,一个表达式中可以存在多个
运算符,当表达式具有多个运算符的时候,
VBScript将按照预定的顺序计算表达式的各
个部分,这个预定顺序被称为运算符优先级。
如果在表达式中有括号,那么首先将对括号
内的表达式进行运算,在括号内表达式的运
算过程中,仍然遵循运算符的优先级关系。
?VBScript的四种运算中,连接运算和关系运
算没有运算的优先级,数学运算的优先级符
合数学运算的规则,逻辑运算的优先级顺序
按表 7-3所示,从上到下逐渐降低。
?在优先级顺序中,算术运算符的优先级最高,
然后是连接运算符,再往后是关系运算符,
逻辑运算符的优先级最低。
表 7-3:逻辑运算符及运算规则
?运算符 说明 优先级 说 明 例 结果
?Not 取反 1 当操作数为假是,结果为真 Not F
T
?And 与 2 操作数均为真时,结果为真 T And
F,T And T F T
?Or 或 3 操作数中有一个为真时,结果为真 T
or FF or F TF
?Xor 异或 3 操作数相反时,结果为真 T Xor F、
T Xor T T F
?Eqv 等价 4 操作数相同时,结果才为真 T
Imp F,F Eqv F F T
?Imp 蕴含 5 第一个操作数为真,第二个操作
数为假时,结果才为假,其余结果均为真 T
Imp FT Imp FF Imp T FTT
7.4 VBScript 语句
?在前面几节中介绍了有关 VBScript语句的数
据类型、常量、变量,但是仅了解这些还远
远不够,也无法完成符合用户需求的页面,
因此,在这一节中我们将进一步学习
VBScript 的基本语句,如选择语句和循环语
句等,以及在 VBScript中使用过程的具体方
法。
7.4.1 VBScript的基本语句
?对于一般程序,有三种基本结构可以控制程
序的流程:顺序结构、分支结构和循环结构。
?顺序结构的流程是按照事务完成的先后次序
依次招待语句,而且总是在完成一条语句之
后再执行后一条语句,并且执行过的语句不
再执行,这与分支结构和循环结构有所区别。
?分支结构相当于在实际生活中,我们对于判
断结果进行选择一样,如果出现某些情况,
我们将会如何做,如果不出现这些情况,我
们将作如何打算。
?循环结构是对某些语句进行反复执行。一般
来说,任何程序总是同时包含这三种结构。
其中,顺序结构最简单,分支结构可以使用
选择语句来实现;循环结构可以使用循环语
句来实现。下面我们将具体介绍选择语句和
循环语句。
1.选择语句
?在 VBScript中,实现选择结构有两种语句:
If…Then…Else 语句和 Select…Case 语句,这
两种语句在执行的时候,先对条件进行判断,
然后根据条件执行相应的脚本。
If…Then…Else 语句是双分支选择结构语句,
Select…Case 语句是多分支选择结构语句。
( 1) If…Then…Else 语句
?VBScript中最常用的条件语句就是
If…Then…Else 语句,一般 If…Then…Else 语
句用来检查一个布尔条件,然后根据结果执
行相应的脚本,如果为 True,则执行 Then后
面的脚本,如果为 False,则执行 Else后面的
脚本。
If…Then…Else 语句有两种形式:
?形式 1:
?If <条件 > Then
?<语句组 1>
?[Else
?<语句组 2>]
?End If
?形式 2:
?If <条件 > Then <语句 1> [Else<语句 2>]
例 7-4-1,If…Then…Else 语句应用
举例 。
?这是一个投票权测试程序,运行结果如图 7-2
( a) 所示,假设在文本框中输入的数字是
15,就会出现图 7-2( b) 所示的提示对话框。
( 2) Select Case 语句
?如果需要实现多分支选择,一般我们 Select
Case 语句,而不 If…Then…Else 语句,尽管
后者也完全能够实现这些功能。 Select Case
语句的功能就是根据表达式的值执行几组脚
本当中的一组。
其语句形式如下:
?Select Case <表达式 >
?Case <表达式值列表 1>
?<语句 1>
?[Case <表达式值列表 2>]
?<语句 2>
?……
?……
?[Case Else
?<语句 n>]
?End Select
?其中,“表达式值列表”的含义是一个或 n
个 <表达式 >可取值的列表。
?多分支语句一定以 Select Case开头,以 End
Select结尾。在开始处得到 <表达式 >取值后,
就把它与结构中每一个 Case后的表达式值列
表中所列的值进行比较。如果相等,就执行
与该 Case相关的 <语句 >。只有在全部都不匹
配时,才去做与 Case Else 相关联的 <语句 >。
例 7-4-2,Select Case语句应用举
例。
?程序的执行结果如图 7-3( a) 所示,假设在
文本框中输入数字 2,单击“确定”按钮,
则将会出现图 7-3( b) 的提示:
2.循环语句
?使用循环语句可以反复执行某段脚本,直到
满足循环条件后才停止。在 VBScript中,提
供了四种循环语句,For…Next 语句、
Do…Loop 语句,While…End 语句和 For
Each…Next 语句。运用循环语句,可以极大
地方便我们开发脚本的工作。
( 1) For…Next 语句
?如果已知某一程序段需要反复执行的次数,
那么使用 For…Next 循环语句是最为恰当的。
该语句的一般格式是:
?For <循环变量 >=<初始值 > To <终值 > [Step<
步长 >]
?[<语句 >]
?[Exit For]
?Next [<循环变量 >]
?其中,<循环变量 >是一个整型变量,<初始
值 >,<终值 >,<步长 >都是具体的数值,<语
句 >是需要反复执行的程序段,常被称为循
环体。在这种结构的循环里,For和 Next必须
配对使用。方括号里的内容可以省略。
For…Next 语句的执行过程是:
?1.将 <初始值 >赋给 <循环变量 >;
?2.检查循环变量的取值是否大于 <终值 >,
如果大于,则结束此循环,去执行 Next后面
的语句;
?3.如果循环变量的取值不大于 <终值 >,执
行循环体内的语句,直至 Next;
?4,将循环变量取值自动增加一个 <步长 >,
回到步骤 2重复进行。
例 7-4-3:下面程序能够计算从 1
到任意正整数 N的总和。
?运行此程序,执行结果如图 7-4所示,如果在
文本框中输入 90,则程序会计算出 1到 90的
总和。
?图 7-4( a) 图 7-4( b)
?使用 VB的编程人员注意,在 VB中 Next语句
之后要跟有循环变量,而在 VBScript的语句
中,该变量不必再写了。
( 2) While…Wend 语句
?在 For…Next 语句中,一开始就会指定初始值
与终值,如果没有使用 Exit For语句的话,循
环体中的语句就会被执行固定的次数,但在
某些情况下,就无法用 For…Next 循环来表示。
?当希望重复做某件事,直到某个条件成立为
止,而不是执行一个固定的次数时,可以使
用 While…Wend 语句
该语句的格式是:
?While <条件 >
?<语句组 >
?Wend
该语句执行的步骤如下:
?1.判断 <条件 >是否为真,如果为真,则进
入步骤 2执行循环体,如果为假或为 Null,则
跳出循环;
?2,执行循环体,然后返回步骤 1。
?注意,While…Wend 语句没有可以跳离循环
的语句,不能想当然地使用 Exit While。
?( 3) Do…Loop 语句
?Do…Loop 语句也是根据条件成立与否来决定
循环是否继续进行的。但它与 While…Wend
语句的区别在于,Do…Loop 语句中有可以跳
离循环的语句 ——Exit Do。
Do…Loop 语句有四种不同的形式
?形式一,形式二:
?Do While <条件 > Do
?[<语句 >] [<语句 >]
?[Exit Do] [Exit Do]
?Loop Loop
?形式三,形式四:
?Do Untill <条件 > Do
?[<语句 >] [<语句 >]
?[Exit Do] [Exit Do]
?Loop Loop Untill<条件 >
例 7-4-4,Do…Loop 的应用。
?执行结果如图 7-5所示,假设输入的汉堡价格
是 8元,手中的钱是 60元,那么单击“确定”
按钮,窗口内显示如图 7-5( b) 所示:
7.4.2 VBScript语句中的过程
?掌握了基本语句和基本概念之后,程序设计
就变成了一个不断重复的过程。用户需要多
次重复某些步骤、或是某些语句来完成某一
特定任务。出于程序的可读性、可调试性的
考虑,在实际的编程过程中,我们将这些用
于实现某一特定功能,而且相对集中的语句
放在一个子程序中,称为过程。
?在过程中的语句一般和其它过程中的语句或
主程序(相对于子程序而言)中的语句没有
什么直接联系。
?在 VBScript中,过程被分为两类,Sub过程的
Function过程。
1,Sub过程
?Sub过程,也称为子过程。它是由一些功能
实现相对集中的 VBScript语句组成的。这些
语句以 Sub语句开头,以 End Sub语句结束。
这些语句被执行操作时并不返回任何数值,
这一点与 Function过程不同。 Sub过程可以使
用参数(由调用过程的主程序将所需的常量、
变量或表达式传递给过程)。如果 Sub过程
无任何参数,则 Sub后面也应加空括号()。
?例 7-4-5:要求放置一个按钮,按下这个按钮
之后将会弹出一个对话框。
2,Function过程
?Function过程又称函数过程,它与 Sub过程类
似,也是由一系列 VBScript语句组成,它以
Function语句开头,以 End Function语句结束。
Function过程在调用结束后,通过函数名返
回一个值,这个值是在过程的语句中赋给函
数名的,它的数据类型总是 Variant。
Function过程中也可以使用参数。
7.5 VBScript的函数
?函数,简单地说,可以看成是一个子程序,
输入一个值给函数,函数就会返回一个值。
在 VBScript中有相当多的函数可以用。使用
这些函数的时候,不必知道,也看不到这些
函数到底是如何处理所输入的参数的,编写
程序的人,只要知道如何使用这些函数就可
以了。
?VBScript的函数种类很多,包括与数字运算
有关的函数、与字符串处理有关的函数、数
据类型转换函数及日期与时间函数等。
7.5.1 数学运算函数
?在 VBScript中提供了一定的数学运算函数,
可以完成简单的数学运算功能
表 7-4,数学运算函数及其功能
?函 数 功 能 函 数 功 能
?Abs() 返回一个数的绝对值 Log() 返回以 e 为
底的对数
?Atn() 返回反正切 Sqn() 返回一个数的符号
?Cos() 返回余弦 Sin() 返回正弦
?Exp() 返回 e 的方幂 Sqr() 返回一个数的平方

?Fix() 返回一个数的整数部分 Tan() 返回正切
?Int() 返回不超过一个数的最大整数 Round()
对数值表达式进行四舍五入
7.5.2 字符串处理函数
?字符串函数在制作网页时特别常用,要收集
使用者在网页中输入的信息,或是检查使用
者输入的格式,都会用到字符串的相关函数。
表 7-5:字符串函数及其功能
?函 数 功 能 函数 功 能
?Len() 求字符串的长度 Left() 从左边截取字符

?Lcase() 将字符串中的所有字母变成小写
Right() 从右边截取字符串
?Ucase() 将字符串中的所有字母变成大写
Mid() 从指定位置处截取字符串
?Ltrim() 去除字符串左边的空格 Space() 产生
指定数目的空格
?CCur() 将表达式转换为货币子类型的数据
CStr() 将表达式转换为字符串子类型的数据
?CDate() 将表达式转换为日期子类型的数据
Hex() 将数值转换为表示十六进制值的字符

?CDbl() 将表达式转换为双精度子类型的数据
Oct() 将数值转换为表示八进制值的字符串
7.5.3 数据类型转换函数
?运用 VBScript的数据类型转换函数,我们可
以方便地将数据进行子类型的转换。
表 7-6:数据类型转换函数及功能
?函 数 功 能 函 数 功 能
?CBool() 将表达式转换为布尔子类型的数据
CInt() 将表达式转换为整数类型的数据
?CByte() 将表达式转换为字节子类型的数据
CSng() 将表达式转换为单精度子类型的数据
?CCur() 将表达式转换为货币子类型的数据
CStr() 将表达式转换为字符串子类型的数据
?CDate() 将表达式转换为日期子类型的数据
Hex() 将数值转换为表示十六进制值的字符

?CDbl() 将表达式转换为双精度子类型的数据
Oct() 将数值转换为表示八进制值的字符串
7.5.4 日期时间函数
?VBScript的日期时间函数能够获取当前系统
的日期和时间,也能够对日期和时间中的各
个部分单独取出进行处理。
表 7-7:日期时间函数及功能
?函数 功能 函数 功能
?Year() 从日期中提取年份 Minute() 从时间中
提取分钟
?Month() 从日期中提取月份 Second() 从时间
中提取秒数
?Day() 从日期中提取日数 DateValue() 将字符
串形式日期转换成数值
?WeekDay() 从日期中提取一周中的天数
TimeValue() 将字符串形式时间转换成数值
?Hour() 从时间中提取小时 DateSerial() 将整数
形式日期转换成数值
?TimeSerial() 将整数形式时间转换成数值
Date 返回当前系统日期
?Time 返回当前系统时间 Now 返回当前系统
的日期及时间
7.5.5 其它函数
?1,InputBox
?其语法格式如下:
?InputBox (提示字符串 [,窗口说明 ][,内容默认
值 ][,对话框水平坐标 ][,对话框垂直坐标 ])
?2,MsgBox函数
?语法格式如下:
?MsgBox (提示字符串 [,按钮 ][,窗口说明 ])
表 7-8:按钮参数取值表
?组 符号常数 值 意义
?第 1组
VbOkOnlyVbOkCancelVbAbortRetryIgnoreVb
YesNoCancelVbYesNoVbRtryCancel 012345
只显示“确定”按钮显示“确定”及“取消”
按钮显示“终止”、“重试”、“忽略”按
钮显示“是”、“否”及“取消”按钮显示
“是”及“否”按钮显示“重试”及“取消”
按钮
?第 2组
VbCriticalVbQuestionVbExclamationVbInform
ation 16324864 显示中止图标(坏信息)显
示问号图标(有疑问)显示惊叹号图标(警
告)显示 i图标(信息)
?第 3组
VbDefaultButton1VbDefaultButton2VbDefault
Button3VbDefaultButton4 0256512768 第一个
按钮为默认第二个按钮为默认第三个按钮为
默认第四个按钮为默认
?第 4组 VbApplicationModalVbSystemModal
04096 应用程序强制返回;应用程序一直被
挂起,直到用户对消息框作出响应才继续工
作系统强制返回;全部应用程序都被挂起,
直到用户对消息框作出响应才继续工作
?表中第一组值代表框中要显示的按钮类型及
个数
?第二组值代表出现在框里的图标样式;第三
组值说明框中出现的按钮哪一个是默认的;
第四组值决定框的强制返回性。“按钮”参
数由每组里最多选出一个值,然后相加而成。
?MsgBox函数的返回值将表明用户用鼠标单
击信息框里的哪一个按钮,具体见表 7-9:
表 7-9,MsgBox函数的返回值
?符号常数 返回值 含义 符号常数 返回值 含义
?VbOkVbCancelVbAbortVbRetry 1234 单击
“确定”按钮单击“取消”按钮单击“终止”
按钮单击“重试”按钮 VbIgnoreVbYesVbNo
567 单击“忽略”按钮单击“是”按钮单击
“否”按钮
7.6 VBScript事件处理
?VBScript提供了 3种事件处理的方式。前面已
经介绍了一种方式,即通过事件过程来控制
事件,当在浏览器中触发事件时,就会调用
事件过程中的代码来处理事件。下面对其它
两种方式进行介绍。
7.6.1 用内联代码直接处理事件
?可以在定义控件的标记中用内联的脚本
代码来直接处理事件。使用这种方式,
不必单独为一个事件编写一个事件过程,
而是将其当作标记中的一个属性。
例如:
?上面的代码没有 <SCRIPT>标记,而是在
<INPUT>标记中含有一个属性,该属性的名
字就是按钮的单击事件名,属性值则放在一
对单引号内。单击按钮时,就会执行单引号
内的语句。事件的属性值可以包含多个语句,
各语句之间用冒号隔开。
?LANGUAGE属性用来指定内联脚本语句所
用的语言。若省略,则默认是 JavaScript。 若
使用的是 VBScript,则不能省略。此外,如
果在 HTML文档中用 <SCRIPT>标记指定了脚
本语言,则可以不必再指定,浏览器会自动
把最近一次指定的脚本语言作为默认语言。
?注意:也可以在脚本部分定义一个通用过程,
然后通过属性来调用这个过程。例如:
7.6.2 用 FOR和 EVENT属性来处理
事件
?在 <SCRIPT>标记中有两个属性,即 FOR和
EVENT,EVENT属性用于定义与脚本部分
相关联的事件,而 FOR属性用于定义与事件
相关联的对象。
?例如
7.7 脚本对象模型
?脚本对象模型是一种层次结构(如图 7-7),
其中的每个对象可以被脚本引擎访问。在脚
本对象模型中,每个对象都有属性,属性本
身也是对象,有自己的属性(其中有些属性
也是对象)、方法和事件。
7.7.1 Window对象
?在脚本对象模型中,最顶层的对象是
Window对象。 Window对象表示浏览器的窗
口,是其它对象的容器。 Window对象的属
性和方法可以在脚本中直接访问。
表 7-10,Window对象的属性
?属 性 说 明
?Name 返回窗口的名称,它是一个只读属性,
在窗口生成时指定。可以用 <A>标记和
TARGET属性来指定窗口名称,也可以用
Window对象的 Open方法打开窗口时指定名
称。
?Parent 返回当前窗口的父窗口对象。通过
Parent属性,可以访问父窗口的属性。例如:
Alert,当前窗口的父窗口名是:” &
Parent.Name
?Top 返回表示最顶层窗口的 Window对象。
?Document 返回当前窗口的 Document对象。
Document对象表示窗口中显示的文档。
?Frames 窗口中可以包含框架,框架通过
Frames属性访问,它是一个对象数组。当前
窗口中的第一个框架是 Frames(0),第二个框
架是 Frames(1),依次类推。
?Location 返回当前窗口的 Location对象。通过
Location对象,可以访问文档的 URL信息。
当前窗口中文档的 URL是由 Location对象的
Href属性给出的。
?DefaultStatus 返回或设置在浏览器状态栏中
显示的默认信息。当浏览器的状态栏不显示
其它信息时,将显示这个信息。
?Status 设置或返回在浏览器状态栏中显示的
信息。
?History 返回当前窗口的 History对象的访问。
?Window对象的方法如表 7-11所示。
表 7-11,Window对象的方法
?方 法 说 明
?Alert 类似于 MsgBox函数,用于显示一个警
告消息框,但只有一个“确定”按钮。
?Cofirm 用于显示一个消息框,该消息框包含
“确定”和“取消”按钮。如果单击“确定”
按钮,则返回 True,否则返回 False。
?Prompt 类似于 InputBox函数,用于提示用户
输入数据。
?Open 打开一个已存在窗口,或者建立一个新
窗口,并在其上显示一个文档。例如,以下
语句打开一个名为,msw”的窗口,在其中显
示 Microsoft网站的主页并返回一个 Window对
象:
NewWindow=Open”http://microsoft.com”,”ms
w”
?Close 关闭一个打开的窗口。例如:
NewWindow.Close
?SetTimeOut 设置一个计时器,用来在指定的
时间后调用一个过程。时间以毫秒为单位。
?ClearTimeOut 用来将指定的计时器复位。
?Navigate 用来在当前窗口中显示新文档。例
如,以下语句通知浏览器链接到 Micriosoft网
站的主页,Navigate
“http://www.microsoft.com”
?Window对象提供了两个事件,即 OnLoad和
OnUnload事件。 OnLoad事件在页面加载时
触发,而 OnUnload事件在页面卸载时触发。
7.7.2 Document对象
?Document对象当前窗口或某个框架中显示的
HTML文档。通过 Document对象的属性和方
法,可以访问当前加载的 HTML页面,控制
页面的外观和内容。
表 7-12,Document对象的属性
?LinkColor 返回或设置文档中超级链接的颜色。
?aLinkColor 返回或设置文档中激活链接的颜
色。激活链接是用鼠村光标移到一个超级链
接上,按下鼠标键而尚未释放时的一种状态。
?vLinkColor 返回或设置已经访问过的超级链
接的颜色。
?bgColor 返回或设置文档的背景色。
?fgColor 返回或设置文档的前景色。
?Anchors Anchor是一个对象,表示当前文档
中的锚。 Anchor对象的 Length属性返回当前
文档中锚的数目,每个锚被存储在 Anchors数
组中,Anchors(0)是文档中的第一个锚,而
Anchors(1)是第二个锚,依次类推。
?Title 返回文档的标题,只读属性。
?Cookie 返回或设置当前文档的 Cookie。
Cookie是由浏览器读取和写入磁盘的文本文
件,这些文件不是可执行文件,不会对文件
系统构成威胁,而且只能通过浏览器进行访
问。使用 Cookie,可以在页面之间传递信息。
?Links Link是一个对象,表示文档中的超级链
接。 Link对象的 Length属性返回当前文档中
超级链接的数目,每个超级链接被存储在
Links数组中,Links(0)是文档中的第一个超
级链接,Links(1)是文档中的第二个超级链
接,依次类推。
?Forms Form是一个对象,表示文档中的表单。
Form对象的 Length属性返回当前文档中表单
的数目,每个表单被存储在 Forms数组中,
Forms(0)是文档中的第一个表单,Forms(1)j
是第二个表单,依次类推。
?Location 返回文档的 Location对象。
?LastModified 返回当前文档的最后修改日期。
?Referrer 返回引用文档的 URL地址。
表 7-13,Document对象的方法
?Open 用于为输出打开文档。执行 Open方法
后,文档中的当前内容将被清除,可以用
Write或 WriteLn将新的文本写到文档中。
?Write 向当前文档中写入字符串。
?WriteLn 将一个字符串写到当前文档,并在
末尾加一个换行符。如果浏览器忽略换行符,
则 WriteLn和 Write方法是一样的。
?Close 关闭文档,显示所有用 Write或 WriteLn
方法写入的信息。
?Clear 清除当前文档中的内容。
7.7.3 Form对象
?Form对象表示文档中的一个表单,表单用于
获取输入数据并向服务器传送。 Form对象包
含表 7-14所示的属性。
表 7-14,Form对象的属性
?Action 指定用于表单操作的后端过程的 URL
地址。这个属性等价于 FORM标记的
ACTION属性。
?Method 指定客户机和服务器之间数据交换的
方法,取值为 GET和 POST。 这个属性等价于
FORM标记的 METHOD属性。
?Target 指定目标窗口。这个属性等价于
FORM标记的 TARGET属性。
?HostName 返回或设置 URL的宿主,可以是
一个名字或一个 IP地址。
?Port 返回或设置 URL的端口。
?PathName 返回或设置 URL的路径。
?Search 返回或设置 URL的搜索部分。
?Hash 返回或设置 URL的无用部分。
7.7.4 Location对象
?通过 Location对象可以访问文档的 URL信息。
表 7-15,Location对象的属性
?ref 返回或设置装入浏览器窗口的完整的 URL。
利用这个属性,可以通过脚本代码链接到其
它位置。
?Protocol 返回或设置 URL的协议。
?Host 返回或设置 URL的宿主和端口,宿主和
端口之间用冒号隔开。
?HostName 返回或设置 URL的宿主,可以是
一个名字或一个 IP地址。
?Port 返回或设置 URL的端口。
?PathName 返回或设置 URL的路径。
?Search 返回或设置 URL的搜索部分。
?Hash 返回或设置 URL的无用部分。
7.7.5 Link对象
?link对象表示文档中的超级链接。 Link对象
的属性与 Location对象的属性类似。利用
Link对象提供的属性,可以得到链接目标的
URL信息。此外,单击超级链接时,将触发
OnClick事件;而鼠标指针移到超级链接上时,
将触发 OnMouseOver事件。
7.7.6 History对象
?History对象是一个不可见的对象,提供了浏
览器的导航按钮的功能。 History对象有三个
方法,即 Back,Forward和 Go方法。 Back方
法用于在历史记录中往回搜索,相当于浏览
器的“后退”按钮; Forward方法用于在历史
记录中向前搜索,相当于“前进”按钮; Go
方法用于跳到历史记录中的某一项。
?History对象只有一个 Length属性,该属性表
示在历史记录中 URL的数目。
7.7.7 Navigator对象
?Navigator对象返回浏览器的有关信息。例如,
可以用 AppCodeName属性返回浏览器的代码
名,用 AppName属性返回浏览器名,用
AppVersion属性返回浏览器的版本,用
UserAgent属性返回浏览器的用户代码。
7.7.8 程序实例
?设计一程序,运行结果如图 7-8所示,当单击
网页中任何一个超链接,都会出现一个信息
框告诉使用者一些关于这个网站的信息。