window.opener=null;
window.close();
这样就不会出现询问“您是否关闭当前页面”的消息框了。
下面是网上搜索来的内容:
网页在打开一定时间内自动关闭
<script language="javascript">
<!--
function closewin(){
setTimeout("self.close()",5000)
}
//-->
<body onload="closewin()">
关键在这里
setTimeout("self.close()",5000),
它使窗口在
5000
毫秒后关闭
,
但是实验一下发现到了
5
秒它会出现一个对话框
,
询问用户是否关闭该页
function close2(){
window.opener=null;
setTimeout("self.close()",5000);
}
<input type="button" value="
关闭
" onclick="close2()">
保存成网页
,
点那个按钮
,5
秒后
,
网页自动关闭了
,
而且没有提示
.
两者差在这一句
window.opener=null
下面的代码是网页打开后弹出一个可控制大小的新窗口然后在
2
秒以后老窗口自动关闭
.
这里的
2
秒可以设置为更短的时间
,
就接近与直接打开一个可控制大小和有无边框
,
地址栏等等的窗口
,
在有些场合也许很合适
.
<script LANGUAGE="JavaScript">
function open1()
{
window.open('http://127.0.0.1/index.asp...,','toolbar=no,menubar=no,location=no,height=650,width=980');
}
<body onUnload="open1();">
<script LANGUAGE="JavaScript">
window.setTimeout(window.close,2000);
window.opener=null
而弹出新窗口
,N
秒后新窗口自动关闭是简单的
,
只需要在新窗口中加如入
<script language="JavaScript">
setTimeout("window.close()",2000);
第三四段代码分别解决了弹出窗口后父窗口和子窗口的无提示自动关闭
.
window.opener
是
js
中
window
的一个属性
,
它返回的是打开当前窗口的窗口对象
.
如果窗口
A
弹出一个窗口
B,
那么在
B
中
window.opener
就是窗口对象
A.
这是
JAVASCRIPT
参考手册里对于
opener
的描述
当一个窗口用
open
方法打开了一个新窗口的时候
,opener
属性就生效了
,
直到被打开的窗口关闭时失效
.
你可以通过
opener
在被打开的窗口中对父窗口进行一系列操作
.
你可以在一个窗口中打开一个新窗口
,
新窗口又打开另外一个新窗口
,
新窗口又打开另外一个新窗口
.....
最后得到的是一串新窗口
,
然而每一个窗口的
opener
属性都指向打开它的那个窗口
.
设计者最多允许打开
100
个这样的窗口
.
当你通过
open
打开了一个新窗口后
,
确保在新窗口中将
opener
属性设置为
null(
空
).
如果不这样的话
,
会使浏览器持续的保留每个
opener
的值
,
直至资源耗尽
.
JS
参考手册还给出了几个例子
,
我把我理解的部分演示一下
~
首先建立
1.htm,
它用
open
方法打开
2.htm,
代码如下
<script language="JavaScript">
window.open('2.htm', ', 'width=225,height=235,resizable=1,scrollbars=auto');
建立
2.htm,
写入这些
<script language="JavaScript">
function ccc()
{
window.opener.document.bgColor='red';
}
function xxx()
{
window.opener.document.location='http://angel1949.blogcn.co...
}
<input type="submit" name="Submit" value="
变色
" onClick="ccc()">
<input type="submit" name="Submit1" value="
转向
" onClick="xxx()">
打开
1.htm
我们会看到弹出的
2.htm,
点击
2.htm
中第一个按钮
,1.htm
的背景颜色变为了红色
,
点第二个按钮
,1.htm
被重定向到了指定的网址
.
这里通过
2.htm
来控制
1.htm
的行为正是利用了
opener.
JS
参考手册的描述中一再强调
open
动作完成后将
opener
设置为空
,
也就是
window.opener=null,
但是哪也没说它有关闭窗口时不提示这么个用法啊
.
比较前篇中父子窗口自动关闭的代码会发现
,
子窗口中是不需要把
window.opener
设置为空也可以无提示自动关闭的
,
而父窗口必须有这一句
.
关于
window.opener
在无提示关闭窗口的作用
,
是不是可以这么解释
,
浏览器认为子窗口与父窗口的优先级是不同的
,
子窗口可以随意关闭而父窗口可能有比较重要的内容而需要用户同意才可以关闭
;
当
window.opener=null
的时候
,
父窗口失去了原来的优先级
,
被浏览器认为是一个普通的窗口
,
所以可以象子窗口一样不需要提示而自动关闭了
本文出自 “努力学习的小熊” 博客,转载请与作者联系!