首页 理论教育 ASP动态网页设计:Window对象

ASP动态网页设计:Window对象

时间:2023-11-05 理论教育 版权反馈
【摘要】:在这种情况下,浏览器为该文档创建一个父Window对象,为每个Frame标记创建一个子Window对象。父Window对象中发生的操作可以影响子Window对象。如调用父Window对象的Close方法将不只关闭父窗口,所有的子窗口都会关闭。表3-12 Window对象的常用方法说明:①Alert方法:用于显示一个对话框,包含一条信息和一个“确定”按钮。

ASP动态网页设计:Window对象

Window对象代表在浏览器中打开的窗口,它是文档对象层次结构中位于最上层的对象,所有其他对象都可以视为Window对象的属性。通过引用该对象的属性可以控制脚本中其他对象的属性,进而控制整个网页的外观以及对事件的响应。

一般地,浏览器在打开一个HTML文档时,创建一个Window对象。如果文档中定义了多个Frames对象,则在文档中有多个Frame标记。在这种情况下,浏览器为该文档创建一个父Window对象,为每个Frame标记创建一个子Window对象。父Window对象中发生的操作可以影响子Window对象。如调用父Window对象的Close方法将不只关闭父窗口,所有的子窗口都会关闭。

下面分别介绍Window对象常用的属性、方法和事件。

1.Window对象的属性

Window对象有多个属性,通过这些属性可以得到客户端浏览器属性,可以控制当前窗口的HTML文档等。其主要属性如表3-11所示。

表3-11Window对象的属性

说明:

①使用Parent属性可以引用父窗口的名称,如果页面由几个Frame对象组成,在一个Frame中调用其他Frame中的对象时,必须得到父窗口对象后,将其作为集合才能访问其他的Frame。

②使用Self属性就可以显式地引用当前Window对象或者Frame对象的方法,从而避免因表单与Window对象重名引起的歧义,提高脚本代码的可读性。

③使用Status属性可以引用当前页面的状态栏

例如,可以在Window对象的On Load事件过程中编写以下语句:

〈BODYon Load=″Window.Status=欢迎您光临本站点!′″LANGUAGE=″VBScript″〉

④使用event属性时必须标明Window对象“Window.event”。

使用event属性可以返回对Event对象的引用,Event对象的属性有:button、altKey、ctrlKey、shiftKey、toElement、fromElement、retumValue、keyCode等,用于返回该事件发生时相应对象的状态、鼠标和键盘的状态(比如,键盘上哪个键按下了,鼠标的位置以及鼠标左键是否按下)。

注意

在特定的事件过程中,不是所有的属性都有意义。例如,Event的fromElement和toElement属性只在mouseover和mouseout事件处理过程中才有意义。

2.Window对象的方法

Window对象的方法用于显示提示信息、输入信息、控制HTML页面外观、触发和响应事件、显示HTML页面等。其中常用的方法如表3-12所示。

表3-12 Window对象的常用方法

说明:

①Alert方法:用于显示一个对话框,包含一条信息和一个“确定”按钮。执行Alert方法时,脚本的执行过程暂停下来,直到用户单击“确定”按钮。例如:

〈BODY onLoad=″Window.alert(′欢迎您光临本站点!′)″LANGUAGE=″VBScript″〉

②Confirm方法:用于显示一个确认对话框,包含一条指定的信息,还包含“确定”和“取消”按钮。如果单击“确定”按钮,该方法返回值为True;单击“取消”按钮,该方法返回值为False。例如:下面的语句将显示一个确认对话框,询问是否提交表单数据,此时如果单击“确定”按钮,则提交表单数据;如果单击“取消”按钮,则不提交。

Result=Window.confirm(″你确定要提交表单数据吗?″)

If Result=true Thenform.submit

③Prompt方法:用于显示一个输入对话框。

语法格式:

Prompt([message[,input Default]])

说明:message是可选参数,是显示提示信息的字符串;InputDefault也是可选参数,显示默认输入值。如果不指定Input Default参数,那么对话框的输入框中将显示“undefined”字样。该方法的返回值为用户输入的字符串。

例如:

username=Window.prompt(″请输入您的姓名:″,″未知用户″)

④Set Timeout方法:用来设置一个计时器,以便在指定的时间(毫秒数)后执行指定的“命令或过程”。

语法格式:

SetTimeout(″命令或过程″,毫秒数)

⑤open方法:用于打开一个已存在的窗口,或者创建一个新窗口,并在该窗口中加载一个文档。

语法格式:

newwindow=Window.open([URL[,name[,features[,replace]]]])

说明:其中URL参数指定了新窗口要加载的HTML文档。如果不指定URL参数,则加载一个空HTML文档。

name参数是可选的,用来指定新窗口的名称,以便别的HTML文档通过超链接调用。

features参数是可选的,用于指定新窗口的样式,有多个选项可以选择,各选项取值与说明如表3-13所示。

表3-13features参数的取值说明

replace参数也是可选的,可以设置为yes或者no,用于指定加载的URL在浏览器历史记录中是否替换原窗口的URL记录。

例如,可以用如下代码打开一个窗口:

Window.Open″titile.htm″

再如,下述代码打开一个名为“title.htm”的文档,新窗口不指定名称,显示工具栏,显示“链接”工具栏:

Window.Open″titile.htm″,null,″fullscreen=no,toolbar=yes,directories=yes″

⑥Navigate方法:用于改变当前页面的URL,使页面转向新的URL,其作用相当于改变Location对象的href属性值。

例如,可以用如下代码指定当前页面的URL:

Window.Navigate″http://www.sohu.com″

3.Window对象的事件

Window对象的事件分为:与加载或卸载网页有关的、与窗口状态有关的、与窗口中事件处理有关的。这些事件中常用的有Load、Unload、Resize。

Load事件与Unload事件分别发生于网页的加载或卸载时,它们界定了一个HTML文档的生命期。Load事件在IE加载给定对象后立刻发生。该事件过程应在〈BODY〉标记中声明。在网页的Load事件处理函数中可以对网页做一些初始化工作,或者显示一些信息。

例如,下面的代码可以在加载网页时显示对话框说明已经触发了Load事件。

〈HTML〉(www.xing528.com)

〈HEAD〉〈TITLE〉Load事件过程〈/TITLE〉

〈SCRIPT LANGUAGE=VBScript〉

Sub init()

MsgBox ″正在加载网页,触发了Load事件″

End Sub

〈/SCRIPT〉

〈/HEAD〉

〈BODY onload=init〉〈/BODY〉

〈/HTML〉

Unload事件是在IE关闭该网页时触发。可以在该事件过程中添加代码,保存有用的用户信息。比如,在进行网上购物时,可以在网页的Unload事件过程中,统计购物的种类和数目等。下面的代码可以在关闭网页时显示对话框说明已经触发了Unload事件。

〈HTML〉

〈HEAD〉〈TITLE〉un Load事件过程〈/TITLE〉

〈SCRIPT LANGUAGE=VBScript〉

Sub Leaving()

MsgBox″正在离开网页,触发了Unload事件″

Eng Sub

〈/SCRIPT〉

〈/HEAD〉

〈BODY onunload=Leaving〉〈/BODY〉

〈/HTML〉

Resize事件发生在用户调整浏览器窗口大小时,可以在其事件过程中重新安排页面中各要素的显示位置和尺寸,以便增加网页对用户操作的敏感性,使交互界面更友好。

【例3.13】利用Window对象的有关方法实现在状态栏中显示滚动文本,运行结果如图3-13所示。

图 3-13 在状态栏中显示滚动文本

文件 命 名 为 3-13.htm , 代 码 如 下 :

〈HTML〉

〈HEAD〉〈TITLE〉状态栏上的滚动文本〈/TITLE〉

〈SCRIPT LANGUAGE=″VBScript″〉

〈!- -

msg=″欢迎你使用 VBScript 语言编程 !″

interval=400

seq=0

′定义 scroll 过程, 其功能是实现在状态栏显示滚动文本

Sub scroll ()

strlen=len (msg)

Window.status=left (msg,seq+l)

seq=seq+1

If seq〉=strlen+l Then

seq=0

Window.status=″″

Window.settimeout ″scroll″,interval

Else

Window.settimeout ″scroll″,interval

End If

End Sub

′调用scroll过程

scroll

--〉

〈/SCRIPT〉

〈/HEAD〉

〈BODY〉

利用Window对象的有关方法实现在状态栏中显示滚动文本

〈/BODY〉

〈/HTML〉

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈