如何判断某个弹出窗口已经被打开及刷新

本文介绍了一种在Web开发中使用window.open()方法打开子窗口,并判断子窗口是否已打开的方法。通过给子窗口赋值,可以实现将已打开的子窗口设置为当前焦点窗口并刷新数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        WEB开发中,父子窗口的操作很是常用,打开子窗口的方式有多种,多数情况下这种模式用得比较多,大家也都很熟悉,貌似一种情况相对会用得少点,google出一篇帖子,解决了一个问题,记之备忘。
 
         问题描述:window.open()出来的窗口,如何判断已经打开?如果打开,则将其设置为当前焦点窗口,并重载数据即刷新。
 
         相信各位搞开发的还是直接进入代码比较直观。
 
  var url="<c:out value="${WebRoot}"/>/.......Action.do?method=Query&entid="+entid;
  window.open(url,'list','width=800,height=600,scrollbars=yes');
 
         通常,我们都是这样直接打开窗口,但是,如果要实现描述的要求,则需要给window.open()出来的子窗口赋值。修改为:
 
  var win = window.open(url,'namethis','width=800,height=600,scrollbars=yes');
  if(win != null){
    win.focus();  
    win.moveTo(200,100);  
    win.resizeTo(560,300); 
    win.location.reload();
  }
 
          如果 win!=null 则说明此时已经打开了子窗口,if 中的前三句还原弹出的子窗口位置,最后一句则实现了刷新,这和子窗口刷新父窗口的操作是一样的:window.opener.location.reload()。
 
          顺便带一句,如何判断窗口已经最小化:
   if(w.screenTop<0){   
       alert("子窗口己最小化");   
    }  
 
            上面的操作在IE下没有问题,对TT不灵。。。

 
  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值