




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5课VBScript的对象编程,ASP网页数据库短训教程(第2版),5.1课前导读VBScript采用的是面向对象、事件驱动编程机制,因此,必须理解对象以及对象的属性、事件和方法等概念。1对象的概念对象是具有属性(数据)和方法(行为方式)的实体。简单地说,属性用于描述对象的一组特征,方法为对象实施一些动作,对象的动作则常常要触发事件,而触发事件又可以修改属性。一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。VBScript所支持的对象有脚本对象(如Window对象、Document对象、Forms对象等)和DHTML内部控件(Button控件、Text控件等)。,2对象的属性在VBScript中,每一种对象都有一组特定的属性。有许多属性可能为大多数对象所共有,如Name属性定义对象的内部名称。还有一些属性只局限于个别对象才有,如只有文本框才有maxLength属性,该属性用来确定用户可以在文本框中输入的字符数。,3对象的事件事件(Event)就是对象上所发生的事情。在VBScript中,事件是预先定义好的、能够被对象识别的动作,如单击(Click)事件、双击(DblClick)事件、装载(Load)事件、鼠标移动(MouseMove)事件等,不同的对象能够识别不同的事件。当事件发生时,VBScript将检测两条信息,即发生的是哪种事件和哪个对象接收了事件。,事件过程是一段独立的程序代码,它在对象检测到某个特定事件时才执行(响应该事件)。一个对象可以响应一个或多个事件,因此可以使用一个和多个事件过程对用户或系统的事件作出响应。程序员只需编写必须响应的事件过程,而其他无用的事件过程则不必编写,如命令按钮的“单击保Click)事件比较常见,其事件过程需要编写,而其MouseDown或MouseUp事件则可有可无,程序员可根据需要选择是否编写该事件过程。,4对象的方法一般来说,方法就是要执行的动作。VBScript的方法与事件过程类似,可以是函数,也可以是过程,它用于完成某种特定功能而不能响应某个事件。如Window对象的关闭(Close)方法、打开(Open)方法等。每个方法完成某个功能,但其实现步骤和细节用户既看不到、也不能修改,用户能做的工作就是按照约定直接调用它们。方法只能在代码中使用,其用法依赖于方法所需的参数的个数以及它是否具有返回值。当方法没有返回值时,可用下面的格式调用对象方法:对象名.方法名参数1,参数2,5.2课堂教学5.2.1事件驱动程序设计VBScript是一种基于事件驱动的编程语言,它可以对在浏览器中发生的很多事件做出响应。1事件驱动模型机制事件驱动意味着系统中各个部分之间以及系统与应用程序之间通过“消息”进行通信,消息的发送与接收伴随着事件的发生,不同的消息与不同的事件相联系。应用程序通过与特定消息相对应的事件过程代码实现与用户的交互。,在事件驱动的程序设计中,程序员根据需要设计事件处理代码事件过程,而无需确定这些过程的执行顺序。当用户进行操作时,程序将执行相应的事件过程。这些事件的发生是随机的,依赖于用户的实际操作。需要注意的是,不必为所有的事件编写事件过程。例如在处理鼠标单击事件时,一般只需为对象的Click事件编写代码,而不必为MouseDown和MouseUp事件编写代码。,2事件过程的调用方式事件过程按其名称被识别,事件过程的命名规则是:on事件名,如Click事件过程名为onclick。事件过程的定义与调用有如下4种方式。(1)通过标记块实现为每个事件过程分配一个标记块,然后使用标记的event属性调用事件过程,其语法格式为:事件过程代码说明:此方式在第4章中多次使用。,(2)在对象定义标记中设置事件过程通过在对象定义标记中设置事件过程可以直接调用事件过程代码,如下面代码:调用事件过程调用事件过程代码在浏览器中的执行如图5-1所示。,(3)在对象定义标记中调用事件过程在对象定义标记中设置事件过程属性可以调用命名Sub过程。上述代码可以改为:调用事件过程Submysub()aa=这是按钮的单击事件msgboxaaEndSub调用事件过程代码在浏览器中的执行如图5-1所示。,(4)单独定义事件过程这种方式对事件过程的命名有严格的要求,过程名必须是:对象名_on事件名常在脚本的块中定义事件过程,上述代码可改为:调用事件过程Submybtn_onclickaa=这是按钮的单击事件msgboxaaEndSub调用事件过程代码在浏览器中的执行如图5-1所示。,5.2.2DHTML对象模型简介DHTML即动态HTML,所谓的“动态”不仅仅表现在网页的视觉展示方式上,更重要的是,它可以对网页中的内容进行控制与变化。动态HTML对象模型定义了用于描述网页及其内部元素的对象,每个对象都有描述其自身状态的属性和描述其行为的方法,它们也可以处理特定类型的事件。因此,网页设计者可通过Script程序来控制或调用这些对象。,如图5-2所示,在DHTML模型中最顶层的对象是Window对象,其他对象可以看作是Window对象的属性。其中,对于编程最重要的属性是Document对象。Document对象表示浏览器中当前的HTML文档,通过该对象能够获得关于当前文档的信息,可以检测和修改当前的HTML文档的元素,还可以响应事件。图5-2DHTML模型的层次结构,Screen属性包含了客户端显示器的信息。通常网页设计要考虑到不同的屏幕分辨率,才能让用户看到最佳的效果,因此,需要获得用户显示器的信息,以便动态调整页面。Frames属性指定由给定文档或者与某个窗口对应文档定义的所有Window对象。这是一个集合属性。它同时也是Document对象的属性。History属性包含用户先前访问过的URLs信息。Navigator属性包含了用户所使用的浏览器的属性,例如浏览器的名称。Location属性包含了关于当前URL的信息。Scripts属性返回当前文档的所有Script块,而不管Script块是在Body块还是在Head块中。而Document对象的Link属性指定了HTML文档中的连接。Anchors属性可以获得文档中的所有超链接。Forms属性是集合属性,返回文档中所有的表单元素。,1Window对象Window对象表示浏览器中一个打开的窗口。通过引用该对象的属性可以控制脚本中其他对象的属性,进而控制整个网页的外观以及对事件的响应。在脚本程序中使用Window对象的属性、方法、集合时,一般不必标明Window,而直接使用。比如,关闭窗口时,可以用代码Close,而不必写为:Window.Close。只是为了增加程序的可读性,建议用户标明Window对象。下面分别介绍Window对象常用的属性、方法和事件。,(1)Window对象的属性Window对象有多个属性,通过这些属性可以得到客户端浏览器属性,可以控制当前窗口的HTML文档等等。其主要属性如表5-1所示。表5-1Window对象的属性,说明:1)使用Self属性就可以显式地引用当前Window对象或者Frame对象的方法,从而避免因表单与Window对象重名引起的歧义,提高脚本代码的可读性。2)可以用如下代码在浏览器状态栏中提示用户正在加载网页:Window.status=正在加载网页把上述代码放在load事件过程中,就能够使用户看见提示信息。,3)使用Event对象时必须标明Window对象:Window.event。Event对象的属性有:button、altKey、ctrlKey、shiftKey、toElement、fromElement、returnValue、keyCode等等,用于返回该事件发生时相应对象的状态、鼠标和键盘的状态。注意,在特定的事件过程中,不是所有的属性都有意义。例如,Event的fromElement和toElement属性只在mouseover和mouseout事件处理过程中才有意义。,(2)Window对象的方法Window对象的方法用于显示提示信息、输入信息、控制HTML页面外观、触发和响应事件、显示HTML页面等。其常用的方法如表5-2所示。表5-2Window对象的常用方法,说明:1)Alert方法用于显示一个对话框,有些类似于MsgBox函数产生的对话框,只是Alert产生的含有图标,而且对话框标题为“MicrosoftInternetExplorer”。注意,用户无法更改使用该方法产生的对话框标题。2)Confirm方法与Alert产生的对话框不同,该方法产生的对话框有两个按钮,而且有返回值。单击“确定”按钮,该方法返回值为True;单击“取消”按钮,该方法返回值为False。注意,无法更改使用该方法产生的对话框标题。,3)Prompt方法的语法如下:Prompt(message,inputDefault)其中,message是可选参数,是显示提示信息的字符串;InputDefault也是可选参数,显示默认输入值。如果不指定InputDefault参数,那么,对话框的输入框中将显示“undefined”字样。该方法的返回值为用户输入的字符串。与Alert、Confirm一样,该方法产生的对话框标题无法更改。4)SetTimeout方法的语法如下:SetTimeout(命令或过程,毫秒数)其作用是在指定的时间(毫秒数)后执行指定的“命令或过程”。,5)Open方法的语法如下:window=对象名.open(URL,name,features,replace)其中,URL参数指定了新窗口要加载的HTML文档。name参数是可选的,用来指定新窗口的名称,以便别的HTML文档通过超链接调用。Features参数是可选的,用于指定新窗口的样式,有多个选项可以选择,各选项取值与说明如表5-3所示。表5-3Features参数的取值说明,replace参数也是可选的,可以设置为yes或者no,用于指定加载的URL在浏览器历史记录中,是否替换原窗口的URL记录。下述代码打开一个名为title.htm的文档,新窗口不指定名称,显示工具栏,显示“链接”工具栏:Window.opentitile.htm,null,fullscreen=no,toolbar=yes,directories=yes,(3)Window对象的事件Window对象的事件分为:与加载或卸载网页有关的,与窗口状态有关的,与窗口中事件处理有关的。这些事件中常用的有Load、Unload、Resize。Load事件与Unload事件分别发生于网页的加载或卸载时,它们界定了一个HTML文档的生命期。Load事件在IE加载给定对象后立刻发生。该事件过程应在标记中声明。在网页的Load事件处理函数中可以对网页做一些初始化工作,或者显示一些信息。,Unload事件是在IE关闭该网页时触发的。可以在该事件过程中添加代码,保存有用的用户信息。比如,在进行网上购物时,可以在网页的Unload事件过程中,统计购物的种类和数目等等。Resize事件发生在用户调整浏览器窗口大小时,可以在其事件过程中重新安排页面中各要素的显示位置和尺寸,以便增加网页对用户操作的敏感性,使交互界面更友好。,2Document对象Document对象代表了当前浏览器窗口中的HTML文档,它是脚本对象模型中最为重要的对象。可以通过该对象检测HTML文档中各元素的状态(比如,颜色、字体,发生的事件等),并且可以更改这些元素的状态。在HTML文档的任何位置都可以调用该对象。下面分别介绍Document对象常用的属性、方法和事件。,(1)Document对象的属性在Document对象的属性中,有些是用来设置当前HTML文档的状态,有些则是用来指示当前URL的信息。其常用的属性如表5-4所示。表5-4Document对象的属性,说明:1)上述属性的颜色可以使用IE颜色表中的值。对颜色值的调用既可以通过颜色名,又可以通过相应的十六进制数。2)Cookie是由浏览器读取或写入硬盘的文本文件,存放在特定的文件夹中。Cookie可以存放用户名和选项等配置信息,使得下一次请求同一页面时,脚本能找到上次存放在客户机上的数据,以调整用户配置。通常用cookie来保存服务器发送来的字符串,以便在页面之间共享信息。在VBScript中,可以使用如下代码把该属性值设为指定值,然后显示出来:document.cookie=color=YellowMsgBox(document.cookie),(2)Document对象的方法Document对象提供了多种方法控制网页的读写以及外观,常用的方法如表5-5所示。表5-5Document对象的方法说明:1)与Window对象的open方法不同,Document对象的open方法只是在当前浏览器窗口中新建一个HTML文档,前者则新建一个浏览器窗口。,2)write方法和writeln方法的区别在于writeln方法在输出字符串末尾添加了回车标志,当然回车标志只在标记和内部起作用。(3)Document对象的事件Document对象的事件中常见的有:click,dblclick、keydown、keypress、keyup、mousedown、mouseover、mouseout、mouseup等。对于鼠标事件的响应与前面介绍的基本致。不同HTML元素对该事件过程的调用形式不同,而在文档中与Document对象相对应的HTML标记是,所以,调用Document对象的事件过程时要在标记中添加代码。,3History对象History对象包含了用户访问过的URL信息,通过这些信息可以使浏览器具有导航功能,使得用户可以很方便地在感兴趣的URL之间切换。History对象不出现在网页上,因而没有对应的事件,只有一些属性和方法。以下分别介绍History对象常用的属性、方法。(1)History对象的属性History对象只有一个Length属性。该属性返回用户访问过的URL个数。该属性只读,在程序中不能对它进行赋值操作,使用频率并不高。,(2)History对象的方法History对象的方法用于在URL历史记录中移动,从而改变当前URL。它有三个方法,back方法,forward方法和go方法。back方法。该方法用于回溯浏览内容,等效于用户在浏览器中单击n次“后退”按钮。其调用形式如下:History.backn其中,参数n指定在URL历史记录中回溯URL的个数。例如:window.history.back1该语句使得当前文档切换到最近一次访问过的URL。,forward方法。该方法用于显示URL历史记录表中下一个URL的内容,等效于用户在浏览器中单击n次“前进”按钮。其调用形式如下:History.forwardn其中,参数n指定在URL历史记录表中向前移动URL的个数。go方法。该方法用于显示URL历史记录表中特定URL的内容。其调用形式如下:History.go(delta|location)其中,参数delta是个整数,指定了目标URL的相对位置。参数location是个字符串,指定了目标URL的一部分或者全部。说明:当参数delta为1时,相当于执行语句:History.forward1。当参数delta为-1时,相当于执行语句:History.back1。,4Navigator对象Navigator对象包含了客户端浏览器的信息,通过引用该对象的属性可以得到这些信息,在大多数情况下,客户端使用的浏览器类型是无法事先知道的。这就要求HTML文档能够适应多种浏览器的特性,比如可能需要它同时适用于IE和Netscape浏览器。而事实上,浏览器之间的兼容性并不好。为此,我们可以设计两组页面,每组页面对应一种浏览器,由脚本程序判断页面是由哪种浏览器打开的,然后根据浏览器的信息打开相应的页面,以便用户获得最佳的浏览效果。Navigator对象不出现在网页上,因而没有对应的事件,只有一些属性和方法。,(1)Navigator对象的属性Navigator对象的属性包含了浏览器的名称、版本、设置等。其中,较为常用的属性有appCodeName、appName,appVersion、cookieEnabled等。appCodeName属性。通过该属性可以得到浏览器类型代号。例如,对于IE来说,该属性的返回值为“Mozilla”。appName属性。通过该属性可以得到浏览器类型名称。例如,对于IE来说,该属性的返回值为“MicrosoftInternetExplorer”。appVersion属性。通过该属性可以得到浏览器的版本号。cookieEnabled属性。由于cookie可以存放一些有用的用户信息,所以,判断浏览器是否支持cookie很有用处。,(2)Navigator对象的方法Navigator对象支持两个方法:javaEnabled和taintEnabled。其中,前者可以用来确定浏览器是否支持java编程语言。这样,脚本程序可以利用这条信息动态调整代码。对于不支持java的,程序中原来用java的部分,可以用VBScript代码实现。后者可以用来确定浏览器是否支持数据tainting。,5Location对象Location对象包含了当前URL的信息。它的属性解析当前URL,以适应不同的应用要求。该对象不支持方法和事件。在其属性中,最常用的有href、pathname、search等属性。href属性。该属性用来返回或者设置当前完整的URL。通过该属性,用户能够实现网页间的少信息传递。同时,通过在脚本代码中改变该属性可以实现网页的动态切换。例如,可以用如下代码指定当前窗口的URL:Window.Location.href=,href属性是Location对象的默认属性。也就是说,下属代码等价:Location=./chap3/docExample.htmLocation.href=./chap3/docExample.htmpathname属性。该属性可用来设置当前文档的路径,通过它能够调用Web根目录以外的文档。search属性。该属性用来返回URL中嵌入的参数,通过参数来实现网页间的信息交互。这种方式比起使用服务器端对象要简单一些。在URL中嵌入参数的方法是在URL后面加一个问号(?),然后紧跟参数名称和参数值。例如:http:/www.SomeS,5.2.3DHTML的内部控件DHTML(DynamicHyperTextMarkupLanguage)是HTML的增强版,通过扩充IE对象并结合VBScript或JScript而组成,与HTML的区别是DHTML的每个标记都作为对象处理。DHTML的内部控件是其预制的对象,由客户端浏览器直接提供,无需从服务器上下载。可以使用、和等标记在网页中添加DHTML的内部控件。其中,标记和标记分别添加列表框和多行文本区控件,而标记则可以在网页中添加多种DHTML控件,如第4课中的例题所示。标记的语法结构如下:,说明:1)name属性指定控件的名称,用于在代码中引用该控件。2)type属性指定控件的类型,其取值与对应的控件说明如表5-6所示。表5-6type属性的取值说明格式中还包括其他一些属性,这些属性中有些是少数控件所特有的,有些则是控件所共有的,即通用的属性。,1通用的属性、事件和方法(1)通用属性常用的通用属性有:Disabled属性、Style属性、Title属性、Value属性等。其说明如表5-7所示。表5-7内部控件的通用属性,【例5-1】通用属性的使用。在记事本中编写代码在浏览器中执行代码,显示如图5-3所示。图5-3通用属性的使用,(2)通用事件通用事件是指大多数控件都能响应的事件。通用事件的说明如表5-8所示。表5-8内部控件的通用事件,【例5-2】响应鼠标事件。在记事本中编写代码在浏览器中执行代码,显示如图5-4所示。图5-4响应鼠标事件,【例5-3】响应键盘事件。在记事本中编写代码说明:1)在键盘事件中,VBScript通过Window对象的Event属性接受按键的ASCII码值(Keypress事件)或键值(Keydown事件和Keyup事件)。2)Window对象的Event属性返回对Event子对象的引用,引用的格式为:key=window.event.Keycode,3)Event子对象的常用属性如表5-9所示。表5-9Event子对象的常用属性(3)通用方法这里只介绍Focus方法。Focus方法使控件获得焦点,其语法格式为:控件名.Focus,2Button控件Button控件又称为命令按钮,通常用来响应用户的命令。Button控件支持大多数的通用属性和事件,其特有的属性有以下几种。1)ReadOnly属性,返回或设置控件状态为只读。与Disabled属性不同的是,ReadOnly属性允许控件接受焦点。可以在标记或代码中使用。2)OuterText属性,取值为字符串,用于将控件动态地更新为该字符串文本。如下述代码将按钮Button1改为文本“欢迎进入聊天室”:Button1.OuterText=欢迎进入聊天室3)OuterHTML属性,取值为字符串或HTML标记(除、以外)。,3Text控件Text控件又称为文本框,通常用来接收用户的输入或输出提示信息。Text控件支持大多数的通用属性和事件,其特有的属性有以下几种。1)MaxLength属性,用于返回或设置用户可以输入的字符数。可以在标记或代码中使用。2)Size属性,用于返回或设置文本框的宽度。可以在标记或代码中使用。Text控件所特有的事件有:1)Change事件,改变文本内容,并转移焦点时触发该事件。2)Select事件,选择文本内容时触发该事件。,【例5-4】响应Change事件。在记事本中编写代码Change事件的使用情况如图5-6所示。图5-6Change事件的响应,4Password控件Password控件与Text控件类似,只是它不显示文本的内容,通常用于验证口令。当用户输入口令时,键入的字符都以星号(*)出现。Password控件所支持的属性和事件与Text控件大致相同。5Radio控件Radio控件又称为单选按钮,它总是作为一个组(单选按钮组)的组成部分工作的。单选按钮组是一组相互排斥的单选按钮,选择一个单选按钮就会立即清除该组中的其他按钮。单选按钮支持常用的通用属性和事件,其特有的属性是Checked。Checked属性用于返回或设置单选按钮的状态,其取值为True或False。若属性值为True,则该单选按钮处于被选中状态;若为False(默认),则处于未选中状态。,可以使用控件的ID属性来区别单选按钮组中的按钮,也可以通过使用下标来区别,如下例所示。【例5-5】使用单选按钮组。在记事本中编写代码在浏览器中执行代码,显示情况如图5-7所示。图5-7使用单选按钮组,6CheckBox控件CheckBox控件又称为复选框,其功能与单选按钮相似,就像一个开关,用于表明某个特定状态是选定(ON)还是未选定(OFF)状态。与单选按钮不同的是,可以同时选中多个复选框。复选框所支持的属性和事件与单选按钮相同,其Checked属性用于返回或设置单选按钮的状态。【例5-6】使用复选框。在记事本中编写代码在浏览器中执行代码,显示情况如图5-8所示。,7Image控件Image控件用于显示图形信息,就像HTML中的IMG标记,其属性也类似。不同的是可以在代码中通过“控件名.x”和“控件名.y”来设置或得到该控件的x和y坐标。与IMG标记的最大不同应该是Image控件可以响应事件,Image控件支持多数的通用事件。8File控件File控件提供一个文本框和一个浏览按钮,用于查找文件。单击浏览按钮,打开“查找文件”对话框,找到的文件及其路径名将显示在文本框中。File控件的value属性将返回找到的文件及其路径名。File控件支持多数的通用属性和事件。,9Submit控件和Reset控件这两个控件须和标记一起使用,分别提供“提交”按钮(Submit控件)和“取消”按钮(Reset控件)。单击“提交”按钮,将会向一个后端过程提交表单中的内容;单击“取消”按钮,则清除当前表单中的所有输入信息。Submit控件和Reset控件支持多数的通用属性和事件。10Hidden控件Hidden控件也须和标记一起使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关战略合作协议书模板专业版4篇
- 代理商加盟合同6篇
- 2025年人员急救试题分析及答案
- 企业内部培训师劳动合同定制与人才培养战略
- 合同范本委托资金借贷合同6篇
- 网络安全领域股权转移及数据安全保护合同样本
- 建筑自动消防设施维护管理制度(5篇)
- 离婚协议执行及财产保全法律事务合同
- 教育机构线下校区扩建2025年政策环境与可行性研究报告
- 婚后共同债务男方全权偿还的离婚协议书
- 2025年乡镇综合执法队员职业素养要求及考试要点
- 2025年村级后备干部考试题库(含答案)
- 京东安全工程师笔试题库
- YB 4094-1993炮弹用方钢(坯)超声波探伤方法
- 《雨巷》优秀课件-雨巷课件一等奖
- 《嫦娥(李商隐)》课件
- 《人工染色体载体》课件
- 平行平板的多光束干涉
- 《全面质量管理》习题集
- 部编版八年级语文上册定稿《一着惊海天》教案课堂实录(区级公开课)
- CAESAR II简易操作手册
评论
0/150
提交评论