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