如何判断某个弹出窗口已经被打开?如果已打开,如何刷新它?(JAVASCRIPT)

时间:2022-01-21 23:48:02
1.父子窗口都同时打开时,刷新父窗口,如何判断子窗口已经打开或者关闭?(通过window.open()打开的,给定子窗口名字)

2.如果子窗口已打开,如何刷新它?
window.opener.location.reload();方法是在子窗口刷新父窗口的,在父窗口刷新子窗口用什么语句?

目前我把子窗口是否打开的值(打开为1)存在cookie中,但如果不是通过关闭窗口的方式而是重起机器后,cookie中那个子窗口是否打开的值仍然是1,那不是永远打不开子窗口了吗?cookie有效时间应该设多少合适?我现在设了1年。。

求教高手解答!!!

19 个解决方案

#1


var w = window.open("子窗口页面地址");

//刷新
if(w!=null)
  w.location.reload();

#2


谢谢你的答复,但是问题还是没有解决。

我的意思是刷新父窗口时如何判断子窗口是否存在,
刷新的时候从哪去获取打开窗口时window.open("子窗口页面地址")的返回值?

也就是说,我现在用window.open("URL","子窗口名","各种属性")打开子窗口,
如何在刷新父窗口时通过“子窗口名”去判断子窗口是否当前打开?能实现吗?或者有其它方法吗?

#3


顶啊!请高手不吝赐教!!!

#4


继续顶!请高手不吝赐教!!!

#5


感觉,仅仅是感觉 :
  不能在刷新父窗口后判断子窗口。要不然,就是没爹的孩子了。
  在父窗口刷新时(即父窗口离开时,激活JS,进行对子窗口操作)

没有试。楼主试试能不能成功。

#6


目前这个问题已经解决。。没爹的孩子。。楼上说的很对
我是在父窗口关闭时BODY的onunload事件里利用打开窗口时的返回值关掉了打开的子窗口
然后刷新后打开新的子窗口,达到了目的。

现在又有一个新的问题,我现在已经能在父窗口判断子窗口是否打开,我想实现父窗口能判断子窗口是否最小化,如果最小化则把它恢复原来大小,请问能做到吗?

说明白点就是if(w!=null)可以判断子窗口是否仍打开,怎样判断子窗口的其它属性?像是否最小化这些属性?

求教!!!

#7


好一个没爹的孩子,只能用全局变量来判断子窗体是否打开了

#8


现在又有一个新的问题,我现在已经能在父窗口判断子窗口是否打开,我想实现父窗口能判断子窗口是否最小化,如果最小化则把它恢复原来大小,请问能做到吗?

说明白点就是if(w!=null)可以判断子窗口是否仍打开,怎样判断子窗口的其它属性?像是否最小化这些属性?

求教!!!

#9


if(w!=null){
       if(w.screenTop<0){
          alert("子窗口己最小化");
       }
}

#10


太感谢了!!!
if(w.screenTop<0)可以判断,那我想要把最小化的窗口恢复原来大小,不知道是否可以实现?

现在我把W关掉再打开一个新窗口也能勉强实现,不知道能不能直接复原?

在线求教!!!

#11


w.moveTo(0,0);
w.resizeTo(screen.availWidth,screen.availHeight);

#12


不行呀

我是想在父窗口中让子窗口恢复原来大小
w是在父窗口中打开子窗口时var w=window.open("URL","子窗口名","各种属性")的返回值

请问在父窗口中应该怎么操作子窗口?

#13


你这里“原大小”指的是多大?

#14


我开始是用
ppp = window.open("http://xx.xx......","_CustomerInfo","top=100,left=200,height=300,width=560,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=yes");
这样从父窗口弹出子窗口的,现在将子窗口最小化后,想在父窗口中恢复子窗口的大小,可以做到吗?

#15


ppp.moveTo(200,100);
ppp.resizeTo(560,300);

#16


最好在前在再加一句:
ppp.focus();

#17


将open这句放到load事件中执行?就可以达到楼主的2种效果。

如果要用脚本设置楼上的正确。

#18


var w = window.open("子窗口页面地址");

//刷新
if(w!=null)
w.location.reload();

#19


问题已经解决!
最后我不再使用COOKIE,直接在父窗口中定义一个hidden的属性,在子窗口中可以通过
window.opener.document.all("CustomerInfoflag").value = "0";
这种语句来控制父窗口中那个hidden属性的值。
父窗口的body的onunload事件时关掉了打开的子窗口,就能保证同时只有一个子窗口是打开状态。
将子窗口恢复原大小的功能我在父窗口中用如下语句实现了:
ppp.focus();
ppp.moveTo(200,100);
ppp.resizeTo(560,300);

尤其感谢Amwpfiqvy(ContextMenu) 朋友的帮助!
也感谢其它朋友的帮助!
马上给分结帖。。这里我会常来的,再次感谢!!!

#1


var w = window.open("子窗口页面地址");

//刷新
if(w!=null)
  w.location.reload();

#2


谢谢你的答复,但是问题还是没有解决。

我的意思是刷新父窗口时如何判断子窗口是否存在,
刷新的时候从哪去获取打开窗口时window.open("子窗口页面地址")的返回值?

也就是说,我现在用window.open("URL","子窗口名","各种属性")打开子窗口,
如何在刷新父窗口时通过“子窗口名”去判断子窗口是否当前打开?能实现吗?或者有其它方法吗?

#3


顶啊!请高手不吝赐教!!!

#4


继续顶!请高手不吝赐教!!!

#5


感觉,仅仅是感觉 :
  不能在刷新父窗口后判断子窗口。要不然,就是没爹的孩子了。
  在父窗口刷新时(即父窗口离开时,激活JS,进行对子窗口操作)

没有试。楼主试试能不能成功。

#6


目前这个问题已经解决。。没爹的孩子。。楼上说的很对
我是在父窗口关闭时BODY的onunload事件里利用打开窗口时的返回值关掉了打开的子窗口
然后刷新后打开新的子窗口,达到了目的。

现在又有一个新的问题,我现在已经能在父窗口判断子窗口是否打开,我想实现父窗口能判断子窗口是否最小化,如果最小化则把它恢复原来大小,请问能做到吗?

说明白点就是if(w!=null)可以判断子窗口是否仍打开,怎样判断子窗口的其它属性?像是否最小化这些属性?

求教!!!

#7


好一个没爹的孩子,只能用全局变量来判断子窗体是否打开了

#8


现在又有一个新的问题,我现在已经能在父窗口判断子窗口是否打开,我想实现父窗口能判断子窗口是否最小化,如果最小化则把它恢复原来大小,请问能做到吗?

说明白点就是if(w!=null)可以判断子窗口是否仍打开,怎样判断子窗口的其它属性?像是否最小化这些属性?

求教!!!

#9


if(w!=null){
       if(w.screenTop<0){
          alert("子窗口己最小化");
       }
}

#10


太感谢了!!!
if(w.screenTop<0)可以判断,那我想要把最小化的窗口恢复原来大小,不知道是否可以实现?

现在我把W关掉再打开一个新窗口也能勉强实现,不知道能不能直接复原?

在线求教!!!

#11


w.moveTo(0,0);
w.resizeTo(screen.availWidth,screen.availHeight);

#12


不行呀

我是想在父窗口中让子窗口恢复原来大小
w是在父窗口中打开子窗口时var w=window.open("URL","子窗口名","各种属性")的返回值

请问在父窗口中应该怎么操作子窗口?

#13


你这里“原大小”指的是多大?

#14


我开始是用
ppp = window.open("http://xx.xx......","_CustomerInfo","top=100,left=200,height=300,width=560,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=yes");
这样从父窗口弹出子窗口的,现在将子窗口最小化后,想在父窗口中恢复子窗口的大小,可以做到吗?

#15


ppp.moveTo(200,100);
ppp.resizeTo(560,300);

#16


最好在前在再加一句:
ppp.focus();

#17


将open这句放到load事件中执行?就可以达到楼主的2种效果。

如果要用脚本设置楼上的正确。

#18


var w = window.open("子窗口页面地址");

//刷新
if(w!=null)
w.location.reload();

#19


问题已经解决!
最后我不再使用COOKIE,直接在父窗口中定义一个hidden的属性,在子窗口中可以通过
window.opener.document.all("CustomerInfoflag").value = "0";
这种语句来控制父窗口中那个hidden属性的值。
父窗口的body的onunload事件时关掉了打开的子窗口,就能保证同时只有一个子窗口是打开状态。
将子窗口恢复原大小的功能我在父窗口中用如下语句实现了:
ppp.focus();
ppp.moveTo(200,100);
ppp.resizeTo(560,300);

尤其感谢Amwpfiqvy(ContextMenu) 朋友的帮助!
也感谢其它朋友的帮助!
马上给分结帖。。这里我会常来的,再次感谢!!!

#20