网页设计与制作第8章.ppt

上传人:xin****828 文档编号:15664342 上传时间:2020-08-28 格式:PPT 页数:140 大小:186.50KB
返回 下载 相关 举报
网页设计与制作第8章.ppt_第1页
第1页 / 共140页
网页设计与制作第8章.ppt_第2页
第2页 / 共140页
网页设计与制作第8章.ppt_第3页
第3页 / 共140页
点击查看更多>>
资源描述
第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部分调用代码之前所有脚本代码都被读取并解码。脚本代码以开始,以结束。,标记的一般格式是:, ,其中,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 算术运算,算术运算就是人们熟悉的数学运算,如:加(+)、减(-)、乘(*)、除(/)、整除( ,如 52 等于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中,实现选择结构有两种语句:IfThenElse语句和SelectCase语句,这两种语句在执行的时候,先对条件进行判断,然后根据条件执行相应的脚本。IfThenElse语句是双分支选择结构语句,SelectCase语句是多分支选择结构语句。,(1) IfThenElse语句,VBScript中最常用的条件语句就是IfThenElse语句,一般IfThenElse语句用来检查一个布尔条件,然后根据结果执行相应的脚本,如果为True,则执行Then后面的脚本,如果为False,则执行Else后面的脚本。,IfThenElse语句有两种形式:,形式1: If Then Else End If 形式2: If Then Else,例7-4-1:IfThenElse语句应用举例。,这是一个投票权测试程序,运行结果如图7-2(a)所示,假设在文本框中输入的数字是15,就会出现图7-2(b)所示的提示对话框。,(2) Select Case 语句,如果需要实现多分支选择,一般我们Select Case 语句,而不IfThenElse语句,尽管后者也完全能够实现这些功能。Select Case 语句的功能就是根据表达式的值执行几组脚本当中的一组。,其语句形式如下:,Select Case Case Case , Case Else 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中,提供了四种循环语句:ForNext语句、DoLoop语句、WhileEnd语句和For EachNext语句。运用循环语句,可以极大地方便我们开发脚本的工作。,(1)ForNext语句,如果已知某一程序段需要反复执行的次数,那么使用ForNext循环语句是最为恰当的。该语句的一般格式是: For = To Step Exit For Next ,其中,是一个整型变量,、都是具体的数值,是需要反复执行的程序段,常被称为循环体。在这种结构的循环里,For和Next必须配对使用。方括号里的内容可以省略。,ForNext语句的执行过程是:,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)WhileWend语句,在ForNext语句中,一开始就会指定初始值与终值,如果没有使用Exit For语句的话,循环体中的语句就会被执行固定的次数,但在某些情况下,就无法用ForNext循环来表示。 当希望重复做某件事,直到某个条件成立为止,而不是执行一个固定的次数时,可以使用WhileWend语句,该语句的格式是:,While Wend,该语句执行的步骤如下:,1判断是否为真,如果为真,则进入步骤2执行循环体,如果为假或为Null,则跳出循环; 2. 执行循环体,然后返回步骤1。 注意:WhileWend语句没有可以跳离循环的语句,不能想当然地使用Exit While。,(3)DoLoop语句 DoLoop语句也是根据条件成立与否来决定循环是否继续进行的。但它与WhileWend语句的区别在于:DoLoop语句中有可以跳离循环的语句Exit Do。,DoLoop语句有四种不同的形式,形式一: 形式二: Do While Do Exit Do Exit Do Loop Loop,形式三: 形式四: Do Untill Do Exit Do Exit Do Loop Loop Untill,例7-4-4:DoLoop的应用。,执行结果如图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:要求放置一个按钮,按下这个按钮之后将会弹出一个对话框。,2Function过程,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 其它函数,1InputBox 其语法格式如下: InputBox (提示字符串,窗口说明,内容默认值,对话框水平坐标,对话框垂直坐标) 2MsgBox函数 语法格式如下: MsgBox (提示字符串 ,按钮,窗口说明),表7-8:按钮参数取值表,组 符号常数 值 意义 第1组 VbOkOnlyVbOkCancelVbAbortRetryIgnoreVbYesNoCancelVbYesNoVbRtryCancel 012345 只显示“确定”按钮显示“确定”及“取消”按钮显示“终止”、“重试”、“忽略”按钮显示“是”、“否”及“取消”按钮显示“是”及“否”按钮显示“重试”及“取消”按钮,第2组 VbCriticalVbQuestionVbExclamationVbInformation 16324864 显示中止图标(坏信息)显示问号图标(有疑问)显示惊叹号图标(警告)显示i图标(信息),第3组 VbDefaultButton1VbDefaultButton2VbDefaultButton3VbDefaultButton4 0256512768 第一个按钮为默认第二个按钮为默认第三个按钮为默认第四个按钮为默认,第4组 VbApplicationModalVbSystemModal 04096 应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工作系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作 表中第一组值代表框中要显示的按钮类型及个数,第二组值代表出现在框里的图标样式;第三组值说明框中出现的按钮哪一个是默认的;第四组值决定框的强制返回性。“按钮”参数由每组里最多选出一个值,然后相加而成。 MsgBox函数的返回值将表明用户用鼠标单击信息框里的哪一个按钮,具体见表7-9:,表7-9:MsgBox函数的返回值,符号常数 返回值 含义 符号常数 返回值 含义 VbOkVbCancelVbAbortVbRetry 1234 单击“确定”按钮单击“取消”按钮单击“终止”按钮单击“重试”按钮 VbIgnoreVbYesVbNo 567 单击“忽略”按钮单击“是”按钮单击“否”按钮,7.6 VBScript事件处理,VBScript提供了3种事件处理的方式。前面已经介绍了一种方式,即通过事件过程来控制事件,当在浏览器中触发事件时,就会调用事件过程中的代码来处理事件。下面对其它两种方式进行介绍。,7.6.1 用内联代码直接处理事件,可以在定义控件的标记中用内联的脚本代码来直接处理事件。使用这种方式,不必单独为一个事件编写一个事件过程,而是将其当作标记中的一个属性。,例如:,上面的代码没有标记,而是在标记中含有一个属性,该属性的名字就是按钮的单击事件名,属性值则放在一对单引号内。单击按钮时,就会执行单引号内的语句。事件的属性值可以包含多个语句,各语句之间用冒号隔开。,LANGUAGE属性用来指定内联脚本语句所用的语言。若省略,则默认是JavaScript。若使用的是VBScript,则不能省略。此外,如果在HTML文档中用标记指定了脚本语言,则可以不必再指定,浏览器会自动把最近一次指定的脚本语言作为默认语言。,注意:也可以在脚本部分定义一个通用过程,然后通过属性来调用这个过程。例如:,7.6.2 用FOR和EVENT属性来处理事件,在标记中有两个属性,即FOR和EVENT,EVENT属性用于定义与脚本部分相关联的事件,而FOR属性用于定义与事件相关联的对象。 例如,7.7 脚本对象模型,脚本对象模型是一种层次结构(如图7-7),其中的每个对象可以被脚本引擎访问。在脚本对象模型中,每个对象都有属性,属性本身也是对象,有自己的属性(其中有些属性也是对象)、方法和事件。,7.7.1 Window对象,在脚本对象模型中,最顶层的对象是Window对象。Window对象表示浏览器的窗口,是其它对象的容器。Window对象的属性和方法可以在脚本中直接访问。,表 7-10:Window对象的属性,属 性 说 明 Name 返回窗口的名称,它是一个只读属性,在窗口生成时指定。可以用标记和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”,”msw”,Close 关闭一个打开的窗口。例如:NewWindow.Close SetTimeOut 设置一个计时器,用来在指定的时间后调用一个过程。时间以毫秒为单位。 ClearTimeOut 用来将指定的计时器复位。,Navigate 用来在当前窗口中显示新文档。例如,以下语句通知浏览器链接到Micriosoft网站的主页:Navigate “” 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所示,当单击网页中任何一个超链接,都会出现一个信息框告诉使用者一些关于这个网站的信息。,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!