一.VBScript语言概述
我们都希望制作出的网页既精致美观又生动活泼而且功能强大,用VBScript语言可以实现这一愿望。
VBScript是Microsoft Visual Basic的简化版本。
VBScript是特意为在浏览器中进行工作而设计的。
编程方法和Visual Basic基本相同 。
VBScript只有一种数据类型,即,Variant类型。
VBScript不支持Visual Basic中传统的I/O功能,即不能通过Open语句和函数在客户机上读写文件,这样防止了可能对客户机造成的危害;VBScript不能调用API函数,这是因为API函数调用会危及客户机的安全,如病毒可以轻而易举地通过API函数调用来破坏客户机;Visual Basic支持Screen、Printer、App、Debug、Err和Clipboard等系统对象,但VBScript只支持Err对象,该对象用于为应用程序提供运行时错误处理。
二.VBScript语言特点
易学易用
VBScript既可编写服务器脚本,也可编写客户端脚本。
客户端编程语言的优点是
(1)浏览器完成了所有的工作,这可以减轻服务器的负担。
(2)客户端程序运行起来比服务器端程序快得多。
一般来说,可以解释VBScript脚本的浏览器只有Microsoft Internet Explorer。
三.VBScript程序的编辑和调试
必须使用<SCRIPT>标签,才能使用脚本语言 ,格式如下 :
<SCRIPT>
VBScript代码
</SCRIPT>
例如,我们可以用一句VBScript语句将"你好,学习VBScript很有趣"写入HTML页面。
<SCRIPT LANGUAGE="VBScript">
<!--
Window.Document.Write("你好,学习VBScript很有趣!")
-->
</SCRIPT>
解释上例中的文档对象的用法:
在文档对象模型(DOM)中,Window对象是最高层的对象,Document对象是Window对象的子对象,所以引用Document对象时应该使用Window.Document,而Write()是Document对象的方法,所以引用Write()方法时,应该使用Window.Document.Write()。
又如:
<SCRIPT language=VBScript>
<!--
Window.alert("你好")
-->
</SCRIPT>
<SCRIPT>标签的LANGUAGE属性
用以指定包含在<SCRIPT>标签中的脚本代码的语言类型 。
<SCRIPT LANGUAGE="VBScript">
<SCRIPT LANGUAGE=“JavaScript">
<SCRIPT LANGUAGE=“JScript">
<SCRIPT>标签的RUNAT属性
RUNAT属性用以指定包含在<SCRIPT>标签中的脚本代码的运行于服务端还是客户端。
<SCRIPT LANGUAGE="VBScript" Runat=server>
VBScript代码
</SCRIPT>
注意:文件要保存成.asp,如果在客户运行则Runat属性可以省略。
注释标签的运用
<SCRIPT LANGUAGE="VBScript">
<!--
VBScript代码
-->
</SCRIPT>
对不支持VBScript的浏览器,会将VBScript代码将作为页面的文本直接显示在页面上,这将会极大地破坏整个页面的布局,所以我们需要运用注释标签来解决这个问题 。
四.用VBScript往网页上写内容。
以下示例VBScript代码的功能是在页面上写入“这是一个VBScript的简单示例” 。
<HTML>
<HEAD>
<TITLE>一个 VBScript 示例</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Window.Document.Write("这是一个VBScript的简单示例")
-->
</SCRIPT>
</HEAD>
<BODY></BODY>
</HTML>
按钮按下后能够出现警告框的示例 。
<HTML>
<HEAD>
<TITLE>一个 VBScript 示例</TITLE>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="button" VALUE="ALERT" OnClick="alerter()">
</FORM>
</BODY>
</HTML>
<SCRIPT LANGUAGE="VBScript">
<!--
sub alerter()
window.alert("这是一个VBScript的简单示例")
end sub
-->
</SCRIPT> 执行
五.VBScript代码的位置不同执行的顺序不同
下载时立即运行的,而且没有包含于过程之中VBScript代码嵌入到<HEAD>标签和</HEAD>标签之间,这段VBScript代码将在页面绘制之前执行。例如
有时候我们并不希望VBScript代码在页面绘制之前执行,而是希望能够在页面绘制中,在页面合适的位置进行处理。
例如
下载时立即运行的,而且没有包含于过程之中VBScript代码嵌入到<HEAD>标签和</HEAD>标签之间,这段VBScript代码将在页面绘制之前执行。例如
有时候我们并不希望VBScript代码在页面绘制之前执行,而是希望能够在页面绘制中,在页面合适的位置进行处理。例如
另外一种解决方式:先直接在页面中写上表格的标签,然后运用VBScript代码在表格内写字符串。例如。
调用时运行VBScript代码的位置
一般情况下,我们最好是将VBScript代码放在<HEAD>标签和</HEAD>标签之间,这不是编写脚本的强制要求,而是一种良好的编写风格。 例如。
还有一种嵌入的方法,就是在页面元素事件处理中直接嵌入VBScript代码(一般为一行)。
<INPUT TYPE="button" VALUE="ALERT"
OnClick=“Window.alert(‘这是一个VBScript的简单示例’)”>例如。
六.客户端脚本代码示例
用浏览器打开时,将显示一个文本框和一个按钮。在文本框中输入数字后,单击"提交"按钮,浏览器会查找并执行过程Button1_OnClick。执行时将调用表单的Submit方法将数据提交到服务器。若输入不正确,如不是数字或小于1或大于50,则会调用MsgBox语句产生消息框提示输入正确的数字。
七.VBScript 数据类型
VBScript 只有一种数据类型,称为Variant。
Variant可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。
见 VBScript 数据类型表
1 .什么是常量
常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。VBScript定义了许多固有常数。
2.声明常量
使用Const语句可以在VBScript中创建用户自定义常数。例如:
Const MyString = "这是一个字符串。"
Const MyAge = 49
请注意字符串文字包含在两个引号(“”)之间。日期文字和时间文字包含在两个井号(#)之间。例如:
Const CutoffDate = #6-1-03#
3.VBScript变量
变量是计算机内存中已命名的内存位置,该位置可存储脚本运行时能更改的信息。
在VBscript脚本中,使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。
4.声明变量
语句格式:DIM myvar1, myvar2, myvar3
在VBscript脚本中,使用一个变量之前不需要专门声明它。
通过直接在脚本中使用变量名的方式叫隐式声明变量。
隐式声明变量不是一个好习惯,先声明变量再使用是编程的良好习惯。
VBScript中提供了Option Explicit语句来强制显式声明变量,这样如果你在编写长而复杂的程序时,如果你敲错了应该变量的名字,将会产生错误,可以帮助你调试脚本。 例如。
5.变量命名规则
变量命名必须遵循VBScript的标准命名规则。变量命名必须遵循:
(1)第一个字符必须是字母。
(2)不能包含嵌入的句点。
(3)长度不能超过255个字符。
(4)在被声明的作用域内必须唯一。
(5)不能使用VBScript中的保留字作为变量名。
在VBScript中给变量命名不区分大小写。给变量命名时,为便于记忆与使用最好能做到“顾名知义”。
6.注释VBScript脚本
Rem comment
' comment
例如:
Dim MyStr1,MyStr2
MyStr1 = "Hello": Rem 语句和注释用冒号隔开。
MyStr2 = "Goodbye"' 这同样是注释不需要冒号。
Rem 在没有代码的行上加注释不必用冒号。
REM I am a VBScript comment.
' I am also a VBScript comment.
7.VBScript脚本中的续行符
在VBScript脚本中当一行写得很长时,程序的可读性会变得很差,如果从语法上没法换行,而我们又想换行时可使用续行符,续行符是空格紧跟一个下划线(“ _”)。请注意:一定不要忘记前面的空格。
请注意:一定不要忘记前面的空格。
八.VBScript 数据类型
1.VBScript中的算术运算符
用于执行数学计算的运算符。
VBScript中提供了7个算术运算符,其中加(+)、减(-)、乘(*)、除(/)和取负(-)几个运算符的含义与数学中的基本相同。
\(整除操作符)
在VBScript中,整数除法先对操作数进行四舍五入运算使操作数变为整数,然后进行除法运算,整数除法运算后的结果是一个整数,1.5\2=1,而1.4\2=0。
mod(取模操作符)
将两个操作数相除,返回相除后的余数,例如表达式5 mod 3的运算结果为2。38.57 mod 14.21的运算(先四舍五入再取余)结果为11。
2.连接运算符
(1)+(加操作符)
加操作符还可以对字符串类型的操作数进行运算,然后将两个字符串相连起来作为运算结果。例如,"How are "+"you! "的运算结果为"How are you! "。
(2)&(连接运算符 )
用于字符串的连接,即将两个字符串变量连接起来,生成一个新的字符串。+运算符也能进行字符串的连接,但只能将两个字符串连接。&运算符能强制性地将两个表达式(不论是什么类型)做字符串连接,用+运算符连接其它类型数据时会出现错误。
3.比较操作符
比较操作符将操作数进行比较,然后返回一个逻辑值,表明这个比较操作的结果是否为真,比较操作符的操作数可以是数值类型或者字符串类型的数据。比较操作符共有6种。分别是。
=、> 、 < 、 >= 、 <= 、 <>
除了数值类型之外,字符串类型也可以进行比较,在比较字符串的过程中,VBScript把字符串中的每个字母转换成相应的ASCII码值,然后从第一个字符开始比较两个字符串中相应的字符,比较它们的ASCII码值。
4.比较操作符示例
例如,"hello"="Hello"的返回结果为False,因为左操作数的第一个字符为h,右操作数的第一个字符为H,h的ASCII码值为104,H的ASCII码值为72,从第一个字符开始就不相等了,所以表达式的值为False。
而如果表达式为"came">="come",首先,比较两个操作数的第一个字符,都是c,这样,不能直接判定两个操作数的大小,然后再比较两个操作数的第二个字符,左操作数为a,右操作数为o,a的ASCII码值为97,o的ASCII码值为111,当然97<111,所以对于这个表达式来说,它的返回结果为False。
5.逻辑运算符
and(与操作符)
result = expression1 And expression2
当且仅当两个表达式均为 True,则 result 为 True。如果任一表达式为 False,则 result 为 False。
or(或操作符)
result = expression1 Or expression2
如果两个表达式中至少有一个为True,则result为True。
not(非操作符)
非操作符只有一个操作数,当操作数为True时,返回结果为False,当操作数为False时,返回结果为True。例如表达式not(2>3)逻辑运算结果为True,因为2>3的结果为False,而表达式not(2<