文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>由控制浏览器窗口的打开和关闭

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

时间:2007-02-17  来源:PHP爱好者

---- 看了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上运行正常。
php爱好者站 http://www.phpfans.net PHP|MySQL|javascript|ajax|html.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载