从通过showmodaldialog启动的子窗口将焦点带到父窗口

时间:2013-01-27 23:46:27

标签: javascript html focus showmodaldialog

我有这样的情景。

窗口1->打开 - >模态弹出 - >打开 - >窗口2。

使用来自窗口1的showmodaldialog方法启动模态弹出窗口。从模式弹出窗口中,使用“window.open”方法启动普通窗口(窗口2)。在启动窗口2时,使用弹出窗口的javascript中的self.close()关闭模态弹出窗口。

现在打开的窗户是1号窗口和1号窗口。窗口2.我想从窗口2转移窗口1的焦点。无论如何这可以做到吗?

由于工作场所的安全限制,我删除了其他编程代码。但是,下面给出的是我上面解释的场景代码的要点。如果有什么办法可以解决这个问题,请告诉我?

以下是我的代码:

  • 父窗口(窗口1):

    <html>
     <head><title> Parent Window <title>
      <script> 
          function show_popup(){ 
          base_win=window; 
          var win1=window.showModalDialog("Child_Window 1.html",base_win,"dialogHeight:500px;dialogWidth:500px;dialogLeft:300");
           } 
       </script> 
      </head>
      <body> 
          This is the parent Window 
          <input type="button" id="button1" value="click this" onclick="javascript:show_popup();">
      </body> 
    </html>
    
  • 模态弹出窗口:

    <html>
     <head>
       <title>Child Window 1</title>
       <script> 
             function show_window(){ 
             var win1=window.open("Child_Window 2.html","");
             self.close();
              }
       </script>
      </head>
      <body> 
          This is the Child Window 1 
           <br>
           <br>
           <input type="button" id="but1" value="click this" onclick="javascript:show_window();">
       </body>
     </html>
    
  • 子窗口(窗口2):

    <html>
      <head>
         <title>Child Window 2</title>
          <script> 
              function goto_parent(){
               var w = window.opener; 
               window.opener = self; 
               w.focus(); 
               } 
           </script> 
         </head> 
         <body> 
             This is the child Window 
              <input type="button" id="but1" value="parent window" onclick="javascript:goto_parent();">
         </body>
     </html>
    

1 个答案:

答案 0 :(得分:0)

在ModalDialog未关闭之前,窗口1将不起作用。 因此,请在基本窗口中的以下代码之后立即调用第3个窗口的实例 -

 var win1=window.showModalDialog("Child_Window 1.html",base_win,"dialogHeight:500px;dialogWidth:500px;dialogLeft:300");

关闭ModalDialog后,基本窗口将调用您所需窗口的焦点。