站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题由控制浏览器窗口的打开和关闭

由控制浏览器窗口的打开和关闭

摘要: 由控制浏览器窗口的打开和关闭
---- 看了9月13日的《计算机世界》上黄震先生的“用VBScript语言控制浏览器窗口的打开”一文,受益匪浅。只是在一般情况下,打开一个新的IE窗口之后,剩下工作,都由浏览者本人去控制它的关闭或浏览到一新的URL去;但有时候,就需要WEB发布者自己来管理控制新建IE窗口了,如下例的为某网页提供在线帮助窗口功能。

---- 让我们先来看一看:微软的IE对象模型

---- 微软的IE(Internet Explore)浏览器使用扩展的对象模型(如下图),其对象的顶层是Window对象,即你所在的浏览器窗口,它还包含其它一些对象(如不图)。你在IE窗口中所看到的一切,都可利用脚本语言(JavaScript、VBScript等),通过直接对Window对象的编程来访问。在这里,主要说说其顶层的Window对象的属性、方法和事件(仅列举部分)。

---- 属性

---- Window对象主要有以下属性:

---- 1. Name:如果已定义了当前窗口,则返回窗口的名称。

---- 2. Parent:返回当前窗口的父窗口Window对象。

---- 3. Opener:返回打开当前窗口的Window对象。

---- 4. Location:返回当前窗口的URL。

---- 方法

---- 1. Open:创建一新的Window对象(IE浏览器例程),并返回指向新例程的指针。

---- 2. Close:关闭窗口对象。

---- 3. Alert:显示只含有OK按钮的警告消息框。

---- 4. Navigate:将Window对象指向新的URL。

---- 5. Focus: 将Window对象设置为当前窗口。

---- 事件

---- 1. Onload:当窗口内所有的内容被处理后触发。

---- 2. Onunload:当窗口的内容被卸出时触发。

---- IE窗口对象管理的(打开和关闭)设计思想在对打开的IE窗口进行管理时,关键问题是父窗口与子窗口之间的消息传递。对父窗口来说,通过Open方法创建一IE子窗口(Window对象)后,可用返回指向新例程的指针来对子窗口进行控制访问;对子窗口来说,可用Opener属性返回的父窗口的Window对象指针,来对父窗口进行控制访问。

---- 例程:

---- 以下是作JavaScript脚本语言实现的对IE窗口简单的管理功能:为网页提供在线帮助窗口,它也可很容易地用VBScript来实现。整个实现的原理,请参照下面的说明。

---- 与主窗口相关的HTML文件:JMain.htm(保存文件时,要删除说明)

< html >
< head >< script LANGUAGE=JavaScript
FOR=window EVENT=onunload() >
< !--
while(x) x.close();
说明:在父窗口关闭时,也应关闭帮助子窗口。
注意:为什么不用下面的语句:
if(x){
x.close();
x=null;
}

---- 因为:父窗口在执行x.close()后,不管子窗口是否已彻底关闭,自己就继续执行直至关闭;而子窗口在关闭时,要通知父窗口,那么在此时,父窗口可能早已关闭,这时就会出现错误的。
//-- >
< /script >
< title >自由控制IE窗口的打开和关闭< /title >
< meta http-equiv=Content-Type content=
text/html; charset=gb2132 >
说明:设置网页的语言为简体中文。
< meta name=GENERATOR content=
Microsoft FrontPage 3.0 >
< script LANGUAGE=javascript >
< !--
var x=null;
说明:定义全局子窗口指针变量
function open_onclick(){

---- 说明:打开帮助按钮的onclick事件调用。如果没有子窗口对象,则新建子窗口,并返回指针;如果已有子窗口对象,则把其设置为当前窗口。
if(!x)
x =window.open(JHelp.htm,helpwindow,
width=320,height=65);
else
x.focus();
}
function close_onclick(){
说明:关闭帮助按钮的onclick事件调用。
如果有子窗口对象,则关闭子窗口
if(x){
x.close();
x =null;
}
}
function sethelp(helptext){

---- 说明:此网页中两个按钮对象和一个链接对象的onmouseover、onmouseout事件调用
var hstring;
if (x) {
x.focus();
if(helptext==open) hstring =
用鼠标点击,则打开在线帮助窗口!;
else if (helptext==close) hstring =
用鼠标点击,则关闭在线帮助窗口!;
else if (helptext==ustc) hstring =
用鼠标点击,则到中国科技大学主页!;
else hstring =;

if(x.HelpText) x.HelpText.value=hstring;

---- 说明:通过变量指针设置帮助子窗口HelpText对象的值(Value属性)。
}
}
-- >
< /script >
< /head >
< body >
< p >自由控制IE窗口的打开和关闭< /p >
< p >< input TYPE=button VALUE=打开帮助
ONCLICK=open_onclick()
onmouseover=sethelp(open) onmouseout=
sethelp() > < /p >
< p >< input TYPE=button VALUE=关闭帮助
ONCLICK=close_onclick()
onmouseover=sethelp(close) onmouseout=
sethelp() > < /p >
< p >< a href=http://www.ustc.edu.cn
onmouseover=sethelp(ustc) target=_blank
onmouseout=sethelp() >中国科技大学< /a >< /p >< /body >
< /html >

? 与子窗口相关的HTML文件:JHelp.htm
(保存文件时,要删除说明)
< html >
< meta http-equiv=Content-Type content=
text/html; charset=gb2132 >
< head >< script LANGUAGE=JavaScript FOR=
window EVENT=onunload() >
< !--
if ( parent.opener)
parent.opener. close_onclick ();
说明:浏览用户关闭子窗口时,通知父窗口;
parent.opener返回父窗口指针。
-- >
< /script >
< title >在线帮助< /title >
< meta name=GENERATOR content=Microsoft FrontPage 3.0 >
< /head >
< body bgcolor=#E4D9F7 >
< h3 >< p align=center >< font color=#ff2222 >
在线帮助:< /font >< /p >< /h1 >
< p >< /p >
< p align=center >< input type=text name=
HelpText size=40 >< /p >
说明:HelpText对象的值(Value属性)
由其父窗口通过变量指针设置。
< /body >< /html >

---- 注: 在这里,仅提供了对IE窗口打开或关闭的思路和方法,希望能对大家的WWW编程起到抛砖引玉的作用,另IE所有对象的属性、方法、事件及一些相关参数的引用,请参阅相关的书籍及网友的一些文章。
---- 在NT4.0 WorkStation及Win98的PWS上运行正常。


↑返回目录
前一篇: 简易的网上计时器--Cimclock
后一篇: 利用VBScript实现倒计时