把 subwin 当成一个全局变量

解决方案 »

  1.   

    mapPage.aspx
    :
    <script language="javascript"> 
     var subwin;   
     function openwin(){ 
        subwin = window.open('interquery.aspx','','height=560,width=800'); 
        location.href='mapPage.aspx'; //请注意这句话("mapPage.aspx"为"interquery.aspx"的父页面)。 
        }    
      function  window_onunload(){   
       subwin.close();   
      }
      openwin();
       </script> 
    </head><body onunload="return window_onunload()">   试下这个
      

  2.   

    2楼的代码不用试——绝对不行!
    楼主的要求是刷新父窗体后,如果关闭父窗体,子窗体也要关闭
    而父窗体一刷新subwin就不存在了
      

  3.   

    你测试后再说
    如果你刷新就会触发window_onunload这个函数关闭了子窗口
      

  4.   


    <script language="javascript"> 
    var subwin;
    function openwin(){ 
    if(window.name=="")
    subwin = window.open('interquery.aspx','','height=560,width=800');
    window.name="main";
    location.href='mapPage.aspx';          // 请注意这句话("mapPage.aspx"为"interquery.aspx"的父页面)。 

    function window_onunload(){
    if(subwin!=null)
    subwin.close(); 
    }
    </script> 
    <body onload="openwin()" onunload="window_onunload()">
    </body>
      

  5.   

    可能是我表达的不够清楚,大家没有懂我的意思。1.我已经通过我帖上去的代码实现了关闭父窗口的同时也把子窗口关闭。(但是要把“location.href='mapPage.aspx'”这句话去掉)
    2.但是当我把“location.href='mapPage.aspx'”去掉的时候,就出现了另一个问题:
      
      就是在关闭子窗口后(子窗口是通过父页面上的一个按钮事件弹出的),手动刷新(只是刷新,并没有点击按钮)父页面,不知道为什么仍然会触发父页面的按钮事件,所以那个子窗口又重新被弹了出来。3.当我把“location.href='mapPage.aspx'”加上的时候,是不会出现2中说的刷新问题。但是关闭父窗口后子窗口确没有被关闭。
      

  6.   

    父页到底是关闭还是刷新【刷新有分很多种】或者是点连接更换过当前url从而触发unload你就很很难判断
    如果是ie还可以通过event来判断,如果是ff,基本上无法判断
      

  7.   

    <script language="javascript"> 
    var subwin;  
    var flag=false;
    function openwin(value){ 
    if(value){flag=false;}
    if(!flag){
        subwin = window.open('2.asp','','height=560,width=800');} 
    flag=true; 
    }    
      function  window_onunload(){  
      subwin.close();  
      } 
      </script> 
    <body onunload="return window_onunload()">   
    <div>
    <input name="open1" type="button" id="open1" value="打开" onClick="openwin(false)">
    </div>
    </body>
    你说不这样不行???
      

  8.   

    你那样测试肯定没有问题,但是我的页面是.aspx页面。JS代码都是嵌在C#中并保存在.cs文件里。父页面上的一个按钮事件在服务器端处理,处理过后在客户端弹出一个子窗口,关闭子页面后刷新父窗口就会弹出一个提示框:“不重新发送信息,则无法刷新网页。请单击‘重试’再次发送信息,或点击‘取消’返回正在查看的页面”我点击‘重试’后它会重新触发父页面中的按钮事件,所以那个子窗口还会弹出来。
      

  9.   

    加上这句话后就好了:location.href='mapPage.aspx'