IE父窗口判断IE子窗口是否被关闭 用window.open("",name) 打开一个IE子窗口后,如何在父窗口通过子窗口名字(name),来判断该子窗口有没有被关闭了?请各位大侠指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当window.open()时候在页面赋予一个变量的值,而当 子页面关闭时候修改这个值然后而就可以判断是否关闭了 var a= window.open('','a');function test(){alert(a.closed);} var a= window.open();function onunload(){if (a){a.close();//关闭打开的子页面}} 谢谢楼上3位的回答,我这情况有点特殊,补充一个说明:var a= window.open();我现在的父页面已经取不到 a 这个窗口引用了。只有这个字窗口的名字。这种情况下,如何做呢? var win = window.open("","win");if(win && !win.closed) alert("Opened.");else alert("closed"); var a= window.open('','a'); if (a.closed) {alert("close");} else {alert("No close");}a.close();if (a.closed) {alert("close");} else {alert("No close");} 看看是否是你想要的效果:<html><body><script language=javascript> var timer var winOpen function IfWindowClosed() { if (winOpen.closed == true) { alert("close"); window.clearInterval(timer); } } function done(){ winOpen=window.open(); timer=window.setInterval("IfWindowClosed()",500); }</script><input type="button" name="btnOpen" value="open" onclick="done();"/></body></html> 为什么会得不到子窗口?var newWindow = window.open('','newWindow','height=300,width=300,scrollbars=auto'); if (newWindow) {alert("得到"); }得不到吗? <script>var mywin = window.open("http://www.g.cn");var myTime = setInterval(function(){ if (mywin.closed) { alert("窗口已关闭!"); clearInterval(myTime) } },100);</script> <SCRIPT LANGUAGE= "JavaScript"> <!-- var newWindow = window.open('','newWindow','height=300,width=300,scrollbars=auto'); function ttt(){ try { newWindow.document; alert("得到"); }catch(e){ alert("得不到"); }}//--> </SCRIPT><input type="button" onclick="ttt()"> >现在的父页面已经取不到 a 这个窗口引用了。 >为什么啊??? >大多数情况下就是向大伙那么做的啊!!!因为父页面可以刷新和迁移,一刷新和迁移。任何对象的都不能保存了。 winOpen 这个对象,我在画面上是不存在的了。因为打开了子画面后,父画面发生迁移。 本来是想这样的:test.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Welcome To Scripting</title><style></style></head><body><div id="folder"></div><script language=javascript>window.open('test2.html');</script><input type='button' onclick='if(window.subwin)alert(window.subwin.closed)' value='a closed?'/></body></html>test2.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Welcome To Scripting</title><style></style><script>window.onunload=function(){ window.opener.subwin = window;}</script></head><body><div id="folder"></div></body></html>不过如果你说是页面刷新和转移的话.这样也没啥用了.除非他没转移.只是刷新.并且刷新后到窗口关闭前没有再刷新. 求助,用了一个字面量,用了一个setInterval,浏览器总是崩溃! extjs中viewport添加控件的问题 提一个比较头疼的问题? 答题系统,控制一题题的显示 IE8 window.onload 改为每次刷新都执行了? 简单的问题操作html 点击那个图片,在+的时候下面的表隐藏,-的时候下面的表显示 怎样能使不带滚动条的select中的选项“上移”或者“下移” 怎样开辟一个新进程? 关于ckeditor和ckfinder for java 整合问题 [关于正则表达式]看谁能写出最简单的!!!! [共享 散分] 我的JS框架基类
然后而就可以判断是否关闭了
function test(){alert(a.closed);}
var a= window.open();
function onunload(){
if (a){
a.close();//关闭打开的子页面
}
}
补充一个说明:
var a= window.open();我现在的父页面已经取不到 a 这个窗口引用了。
只有这个字窗口的名字。这种情况下,如何做呢?
if(win && !win.closed) alert("Opened.");
else alert("closed");
var a= window.open('','a');
if (a.closed) {
alert("close");
} else {
alert("No close");
}
a.close();
if (a.closed) {
alert("close");
} else {
alert("No close");
}
<body>
<script language=javascript>
var timer
var winOpen
function IfWindowClosed() {
if (winOpen.closed == true) {
alert("close");
window.clearInterval(timer);
}
}
function done(){
winOpen=window.open();
timer=window.setInterval("IfWindowClosed()",500);
}
</script>
<input type="button" name="btnOpen" value="open" onclick="done();"/>
</body>
</html>
var newWindow = window.open('','newWindow','height=300,width=300,scrollbars=auto');
if (newWindow)
{
alert("得到");
}得不到吗?
var mywin = window.open("http://www.g.cn");
var myTime = setInterval(function(){
if (mywin.closed) {
alert("窗口已关闭!");
clearInterval(myTime)
}
},100);
</script>
<SCRIPT LANGUAGE= "JavaScript">
<!--
var newWindow = window.open('','newWindow','height=300,width=300,scrollbars=auto');
function ttt(){
try
{
newWindow.document;
alert("得到");
}catch(e){
alert("得不到");
}
}
//-->
</SCRIPT>
<input type="button" onclick="ttt()">
>为什么啊???
>大多数情况下就是向大伙那么做的啊!!!因为父页面可以刷新和迁移,一刷新和迁移。
任何对象的都不能保存了。
winOpen 这个对象,我在画面上是不存在的了。
因为打开了子画面后,父画面发生迁移。
本来是想这样的:
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Welcome To Scripting</title>
<style>
</style>
</head><body>
<div id="folder">
</div>
<script language=javascript>
window.open('test2.html');
</script>
<input type='button' onclick='if(window.subwin)alert(window.subwin.closed)' value='a closed?'/>
</body></html>test2.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Welcome To Scripting</title>
<style>
</style>
<script>
window.onunload=function(){
window.opener.subwin = window;
}
</script>
</head><body>
<div id="folder">
</div>
</body></html>不过如果你说是页面刷新和转移的话.这样也没啥用了.除非他没转移.只是刷新.并且刷新后到窗口关闭前没有再刷新.