850 likes | 1.2k Views
第 4 章 VBScript 的对象与动态网页编程. 4.1 VBScript 的对象编程 4.2 在 VBScript 中使用对象 4.3 表单控件 4.4 技能与实训 4.5 思考与练习. 4.1 VBScript 的对象编程. 4.1.1 对象的属性和方法 类和对象 “ 类 ” 是一类事物总体的描述,而对象可以看成是现实中的某个实体,所以, 一个对象都能够对应到一个类,而一个类可以被创建为多个对象。 一个对象最重要的应该是两个元素:属性和方法。属性是一个对象的某些特征,类是实体共性的抽象,而属性则可以理解成这些某个实体的特性。.
E N D
第4章 VBScript的对象与动态网页编程 • 4.1 VBScript的对象编程 • 4.2 在VBScript中使用对象 • 4.3 表单控件 • 4.4 技能与实训 • 4.5 思考与练习
4.1 VBScript的对象编程 4.1.1对象的属性和方法 类和对象 “类”是一类事物总体的描述,而对象可以看成是现实中的某个实体,所以, 一个对象都能够对应到一个类,而一个类可以被创建为多个对象。 一个对象最重要的应该是两个元素:属性和方法。属性是一个对象的某些特征,类是实体共性的抽象,而属性则可以理解成这些某个实体的特性。
4.1 VBScript的对象编程 • 4.1.2 事件驱动程序设计 • 事件驱动 • 所谓的“事件驱动”指的就是通过事件的发生来推动程序的执行,这个事件,可以是由用户产生的,比如单击鼠标、键盘输入等,也可以是由系统产生的,比如时间到了某个时刻、系统产生了某些错误等。
1. 与网页有关的事件:onload :当一个网页被加载的时候触发onunload :当一个网页被卸载的时候触发 例如:<script language=”vbscript”> sub window_onload() msgbox”网页加载完成时显示!”end sub</script> • 4.1 VBScript的对象编程
这个过程不需要调用就能够执行,因为当网页加载完成后网页对象(Window)会触发一个onload事件,则事件过程中的语句会自动执行。2. 与鼠标有关的事件:onclick: :鼠标单击时触发ondblclick :鼠标双击时触发mousedown :鼠标按下时触发mouseup :鼠标弹起时触发mousemove :鼠标移动时触发 • 4.1 VBScript的对象编程
上面鼠标事件的过程描述如下:sub 对象_事件(鼠标键,功能键,X,Y) end sub其中,鼠标键参数用于区分鼠标的哪个键被按下,取值如下表4.1所示。 • 4.1 VBScript的对象编程
功能键参数用于区分shift 、ctrl 、alt三个功能键被按下的情况,取值如下表4.2所示。X,Y属性:表示鼠标当前的位置。表4.2 功能键取值参数 • 4.1 VBScript的对象编程
表4.2 • 4.1 VBScript的对象编程
3. 与键盘有关的事件:keypress :按一个键盘键时触发keydown :按下一个键盘键时触发keyup :弹起一个键盘键时触发 这些时间也是有参数的:sub 对象_事件(keycode,功能键) end sub其中的keycode表示被按键盘键所代表字符的ASCII的值(注:因为这个参数只是为了区分键,所以不管是大小写取大写字母的ASCII值)。功能键参数的取值,参考表4. 2。 • 4.1 VBScript的对象编程
IE的脚本对象模型是一种层次结构,结构如图4.1所示。IE的脚本对象模型是一种层次结构,结构如图4.1所示。 • 4.2 在VBScript中使用对象
4.2 在VBScript中使用对象 从这个模型中,我们可以看出,最上面的是“window”对象,也称为窗体对象。它包含其它的六个对象,分别为框架对象(Frame)、历史对象(History)、浏览对象(Navigator)、位置对象(Location)、脚本对象(Script)、文档对象(Document);其中文档对象又包含三个子对象:链接对象(Link)、锚点对象(Anchor)和表单对象(Form)。最低一层的是元素对象(Element),它被包含在表单对象中。 在这个脚本对象模型中,Window对象是整个脚本对象的根,其它的对象都从属于这个根对象,是Window对象的属性,同时也是一个对象。
4.2.1 Window对象 Window对象位于脚本对象模型的最顶层,它能够带表IE的窗口。当一个网页被打开,就会产生一个Window对象。可以使用 Window 对象获取关于窗口状态的信息。还可以使用此对象获得对窗口文档、窗口中发生的事件和影响窗口的浏览器的访问。 当我们要访问当前窗口的Window对象时,可以直接使用Window关键字,因为此关键字总是代表当前的窗口。 接下来,我们按照面向对象的程序设计思想,分别来讨论Window对象的属性、方法和事件。 4.2 在VBScript中使用对象
4.2 在VBScript中使用对象 (7)dialogWidth:设置或获取模式对话框的宽度。 (8)frameElement:获取在父文档中生成 Window 的 frame 或 iframe 对象。 (9)length:设置或获取集合中对象的数目。 (10)name:设置或获取表明窗口名称的值。 (11)offscreenBuffering:设置或获取对象在对用户可见之前是否要先在屏幕外绘制。 (12)opener:设置或获取创建当前窗口的窗口的引用。
4.2 在VBScript中使用对象 (13)parent:获取对象层次中的父窗口。 (14)returnValue:设置或获取从模式对话框返回的值。 (15)screenLeft:获取浏览器客户区左上角相对于屏幕左上角的 x 坐标。 (16)screenTop:获取浏览器客户区左上角相对于屏幕左上角的 y 坐标。 (17)self:获取对当前窗口或框架的引用。 (18)status:设置或获取位于窗口底部状态栏的信息。 (19)top:获取最顶层的祖先窗口。
4.2 在VBScript中使用对象 4.2.1.2 Window对象的方法 Window对象的方法如下: (1)Alert:显示包含由应用程序自定义消息的对话框。 (2)attachEvent:将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。 (3)Blur:使元素失去焦点并触发 onblur 事件。 (4)clearInterval:使用 setInterval 方法取消先前开始的间隔事件。 (5)clearTimeout:取消先前用 setTimeout 方法设置的超时事件。
4.2 在VBScript中使用对象 (6)Close:关闭当前浏览器窗口或 HTML 应用程序(HTA)。 (7)Confirm:显示一个确认对话框,其中包含一个可选的消息和确定取消按钮。 (8)createPopup:创建弹出窗口。 (9)detachEvent:从事件中取消指定函数的绑定,这样当事件触发时函数就不会收到通知了。 (10)execScript:以给定语言执行指定的脚本。 (11)Focus:使得元素得到焦点并执行由 onfocus 事件指定的代码。 (12)moveBy:将窗口的位置移动指定 x 和 y 偏移值。
4.2 在VBScript中使用对象 (13)moveTo:将窗口左上角的屏幕位置移动到指定的 x 和 y 位置。 (14)Navigate:在当前窗口中装入指定 URL。 (15)Open:打开新窗口并装入给定 URL 的文档。 (16)Print:打印与窗口关联的文档。 (17)Prompt:显示一个提示对话框,其中带有一条消息和一个输入框。 (18)resizeBy:更改窗口的当前位置缩放指定的 x 和 y 偏移量。 (19)resizeTo:将窗口的大小更改为指定的宽度和高度值。
4.2 在VBScript中使用对象 (20)Scroll:将窗口滚动到自左上角起指定的 x 和 y 偏移量。 (21)scrollBy:将窗口滚动 x 和 y 偏移量。 (22)scrollTo:将窗口滚动到指定的 x 和 y 偏移量。 (23)setActive:设置对象为当前对象而不将对象置为焦点。 (24)setInterval:每经过指定毫秒值后计算一个表达式。 (25)setTimeout:经过指定毫秒值后计算一个表达式。
4.2 在VBScript中使用对象 4.2.1.3 Window对象的事件 Window对象的事件如下: (1)Onactivate:当对象设置为活动元素时触发。 (2)Onafterprint:对象所关联的文档打印或打印预览后立即在对象上触发。 (3)Onbeforedeactivate:在 activeElement 从当前对象变为父文档其它对象之前立即触发。 (4)Onbeforeprint:对象的关联文档打印或打印预览前在对象上触发。 (5)Onbeforeunload:在页面将要被卸载前触发。
4.2 在VBScript中使用对象 (6)Onblur:在对象失去输入焦点时触发。 (7)Oncontrolselect:当用户将要对该对象制作一个控件选中区时触发。 (8)Ondeactivate:当 activeElement 从当前对象变为父文档其它对象时触发。 (9)Onerror:当对象装载过程中发生错误时触发。 (10)Onfocus:当对象获得焦点时触发。 (11)Onhelp:当用户在浏览器为当前窗口时按 F1 键时触发。 (12)Onload:在浏览器完成对象的装载后立即触发。
4.2 在VBScript中使用对象 (13)Onmove:当对象移动时触发。 (14)Onmoveen:当对象停止移动时触发。 (15)Onmovestart:当对象开始移动时触发。 (16)Onresize:当对象的大小将要改变时触发。 (17)Onresizeend:当用户更改完控件选中区中对象的尺寸时触发。 (18)Onresizestart:当用户开始更改控件选中区中对象的尺寸时触发。
4.2 在VBScript中使用对象 例4-1:Window对象综合示例。 第一步,创建页面文件4.2-2.htm(通过超链接为目的页面命名(“name“属性赋值))。 <html> <head> </head> <body> <a href=”4.2.htm” target=”parent访问父窗口”>给子窗口命名</a> </body></html>
4.2 在VBScript中使用对象 第二步,创建页面文件4.2-3.htm(把窗口名称放到窗口的状态栏上!)。 <html> <head> <script language=”vbscript”> dim my_na my_na=window.name window.status=my_na window.alert “本窗口的名字为:”&my_na </script></head><body><a href=”4.3.htm” targe=”_self”> 点击</a></body></html>
4.2 在VBScript中使用对象 第三步,创建页面文件4.2-4.htm。 <html> <head> <script language=”vbscript”> dim fa_na fa_na=window.parent.name /获得父窗口的名称 window.status=fa_na /把父窗口的名称放到本窗口的状态栏上 window.alert “本窗口的父窗口名字为:”&fa_na /用alert方法输出父窗口名称
4.2 在VBScript中使用对象 sub window_Onresize /当改变窗口大小的时候,显示信息,并关闭窗口 window.alert “窗口大小改变了” window.close end sub </script> </head> <body> </body> </html>
4.2 在VBScript中使用对象 图4.3 父窗给子窗体命名(4.2.htm 效果图) 图4.4 4.3.htm 获得父窗体名称并显示
4.2 在VBScript中使用对象 4.2.2 document对象 4.2.2.1 document对象的属性 document对象的属性如下: (1)activeElement:获取当父 document 拥有焦点时获得焦点的对象。 (2)alinkColor:设置或获取元素中所有激活链接的颜色。 (3)bgColor:不赞成。设置或获取表明对象后面的背景颜色的值。 (4)Charset:设置或获取用于解码对象的字符集。 (5)Cookie:设置或获取 cookie 的字符串值。
4.2 在VBScript中使用对象 (6)defaultCharset:从当前的区域语言中获取默认字符集。 (7)designMode:设置或获取表明文档是否可被编辑的值。 (8)Dir:设置或获取表明对象的阅读顺序的值。 (9)Doctype:获取与当前文档关联的文档类型声明。 (10)documentElement:获取对文档根结点的引用。 (11)Domain:设置或获取文档的安全域名。 (12)Expando:设置或获取表明是否可对象内创建任意变量的值。
4.2 在VBScript中使用对象 (13)fgColor:设置或获取文档的前景(文本)颜色。 (14)fileCreatedDate:获取文件创建的日期。 (15)fileModifiedDate:获取文件上次修改的日期。 (16)fileSize:获取文件大小。 (17)Implementation:获取当前文档的 implementation 对象。 (18)lastModified:获取页面上次修改的日期,若页面提供的话。 (19)linkColor:设置或获取对象文档链接的颜色。
4.2 在VBScript中使用对象 (20)parentWindow:获取容器对象所在窗口的引用。 (21)Protocol:设置或获取 URL 的协议部分。 (22)readyState:获取表明对象当前状态的值。 (23)Referrer:获取将用户引入当前页面的位置 URL。 (24)uniqueID:获取为对象自动生成的唯一标识符。 (25)URL:设置或获取当前文档的 URL。 (26)URLUnencoded:获取文档的 URL,去除所有字符编码。
4.2 在VBScript中使用对象 (27)vlinkColor:设置或获取用户已访问过的链接颜色。 (28)XMLDocument:获取对由对象引出的的 XML 文档对象模型(DOM)的引用。 (29)XSLDocument:获取对 XSL 文档的顶层结点的引用。
4.2 在VBScript中使用对象 4.2.2.2 document对象的方法 document对象的方法如下: (1)attachEvent:将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。 (2)Close:关闭输出流并强制将数据发送到显示。 (3)createAttribute:以指定名称创建 attribute 对象。 (4)createComment:以指定数据创建 comment 对象。 (5)createDocumentFragment:创建一个新文档。
4.2 在VBScript中使用对象 (5)createDocumentFragment:创建一个新文档。 (6)createElement:为指定标签创建一个元素的实例。 (7)createEventObject:生成当使用 fireEvent 方法时用于传递事件相关信息的 event 对象。 (8)createStyleSheet:为文档创建样式表。 (9)createTextNode:从指定值中创建文本字符串。 (10)detachEvent:从事件中取消指定函数的绑定,这样当事件触发时函数就不会收到通知了。
4.2 在VBScript中使用对象 (11)elementFromPoint:返回指定 x 和 y 坐标的元素。 (12)execCommand:在当前文档、当前选中区或给定范围上执行命令。 (13)Focus:使得元素得到焦点并执行由 onfocus 事件指定的代码。 (14)getElementById:获取对 ID 标签属性为指定值的第一个对象的引用。 (15)getElementsByName:根据 NAME 标签属性的值获取对象的集合。 (16)getElementsByTagName:获取基于指定元素名称的对象集合。
4.2 在VBScript中使用对象 (18)mergeAttributes:复制所有读/写标签属性到指定元素。 (19)Open:此方法以两种方式工作。该方法打开一个文档用于收集 write 和 writeln 方法的输出。在这种情况下,只使用前两个参数 url 和 name。若指定了附加参数,此方法将打开一个窗口,这与 Window 对象的 window.open 方法相同。 (20)Recalc:重新计算当前文档中的全部动态属性。 (21)releaseCapture:释放当前文档中对象的鼠标捕捉。
4.2 在VBScript中使用对象 (22)setActive:设置对象为当前对象而不将对象置为焦点。 (23)Write:在指定窗口的文档中写入一个或多个 HTML 表达式。 (24)Writeln:在指定窗口的文档中写入一个或多个 HTML 表达式,后面追加一个换行符
4.2 在VBScript中使用对象 4.2.2.3 document对象的事件 document对象的事件如下: (1)onbeforeactivate:对象要被设置为当前元素前立即触发。 (2)Onfocusin:当元素将要被设置为焦点之前触发。 (3)Onfocusout:在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。 (4)Onmousewheel:当鼠标滚轮按钮旋转时触发。
4.2 在VBScript中使用对象 例4-2:创建文件4.2-5.htm <html> <head> <script language=”vbscript”> document.bgcolor=”red” /通过document对象设置网页背景色 sub document_Onmousewheel() /转动滚轮时触发事件 document.write “你转动了滚轮!” /通过document对象输出内容到网页end sub</script></head><body></body> </html>
4.2 在VBScript中使用对象 图4.5 通过document对象设置网页背景色
4.2 在VBScript中使用对象 图4.6 通过document对象输出内容到网页
4.2 在VBScript中使用对象 4.2.3 Frame对象 可以通过 frame 对象访问所在页面的frame的属性 4.2.4 Location对象 location对象包含了当前URL的信息,并可以对URL进行设置。 4.2.4.1 location对象的属性
4.2 在VBScript中使用对象 location对象的属性如下: hash:设置或获取 href 属性中在井号“#”后面的分段。 Host:设置或获取 location 或 URL 的 hostname 和 port 号码。 Hostname:设置或获取 location 或 URL 的主机名称部分。 Href:设置或获取整个 URL 为字符串。 Pathname:设置或获取对象指定的文件名或路径。 Port:设置或获取与 URL 关联的端口号码。 Protocol:设置或获取 URL 的协议部分。 Search:设置或获取 href 属性中跟在问号后面的部分。
4.2 在VBScript中使用对象 4.2.4.2 location对象的方法 location对象的方法如下: assign:装入新的 HTML 文档。 reload:重新装入当前页面。 replace:装入指定 URL 的另外文档来替换当前文档。 例4-3:location的属性(文件4.2-7.htm) <html> <head> <title>location</title></head><body> <script language="vbscript">
4.2 在VBScript中使用对象 document.write ("锚标识:"& location.hash &"!<br>") document.write ("主机:"&location.host &"!<br>") document.write ("主机名:"&location.hostname &"!<br>") document.write ("超链目标名:"&location.href &"!<br>") document.write ("文件路径名:"&location.pathname &"!<br>") document.write ("端口:"&location.port &"!<br>") document.write ("存取方式:"&location.protocol&"!<br>") document.write ("搜索字符串:"&location.search) &"!" </script></body></html>
4.2 在VBScript中使用对象 图4.7 location对象
4.2 在VBScript中使用对象 4.2.5 History对象 History对象代表用户访问的历史URL信息,History对象有4个属性和3个方法,没有事件。 History对象的属性如下: current窗口中当前所显示文档的URL。 lengh它表示历史表的长度。 next表示历史表中的下一个URL。 PROVIOUS表示历史表中的上一个URL。
4.2 在VBScript中使用对象 History对象的方法可以调用历史表中包含的文档。 back()方法装入历史表中的前一个页面,等效于浏览器中的Back按钮。 forward()方法装入历史表中的后一个页面,等效于浏览器中的Forward按钮。 go()方法进入历史表中的特定文档,可以取整形参数或字符串参数。