2015-10-13 104 views
1

如何一次只顯示一個彈出窗口?一次顯示一個彈出窗口

我已經創建了一個名爲parent.html的頁面。在父母頁上,我有兩個鏈接之一是註冊和另一個是登錄。 如果我點擊註冊然後註冊頁面打開作爲子窗口 但 如果我點擊登錄,然後已打開的子框(註冊)應該關閉和登錄子窗口應該打開或所有以前打開的子框應該消失。

我的代碼如下

<input type="button" value="login" onclick="ShowPopup('login.asp')" /> 
<script type="text/javascript"> 
var popup; 
    function ShowPopup(url) { 
     popup = window.open(url, "self", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=100,height=100,left = 490,top = 262"); 
     popup.focus(); 
    } 
</script> 
</form> 

<input type="button" value="register" onclick="ShowPopup('register.asp')" /> 
<script type="text/javascript"> 
    var popup; 
    function ShowPopup(url) { 
     popup = window.open(url, "self", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=100,height=100,left = 490,top = 262"); 
     popup.focus(); 
    } 
</script> 
</form> 

我取代 「彈出」 與 「自我」。現在只有一個孩子的窗戶一次打開而不是多個,並且工作完美。

但是,當我關閉子窗口,父頁面不刷新。如下

子窗口代碼

<form id="form1" runat="server"> 
<input type="button" value="Refresh Parent" onclick="RefreshParent()" /> 
<script type="text/javascript"> 
    function RefreshParent() { 
     if (window.opener != null && !window.opener.closed) { 
      window.opener.location.reload(); 
     } 
    } 
    window.onbeforeunload = RefreshParent; 
</script> 
</form> 

請幫我

+0

'「popup」'你可以用''self''替換它'。 – Jai

+0

@Jai問題解決thanx。 –

+0

不客氣。 – Jai

回答

0

第一件事情,沒有必要重新定義變量&功能..現在即將解決方案 -

<script type="text/javascript"> 
var popup; 
    function ShowPopup(url) { 
     if(popup) 
     { 
     popup.close(); 
     } 
     popup = window.open(url, "Popup", "toolbar=no,scrollbars=no,location=no,statusbar=no, 
       menubar=no,resizable=0,width=100,height=100,left = 490,top = 262"); 
     popup.focus(); 
    } 
</script> 

在你的孩子頁頭部分(刷新父風嗷嗷收盤價),

<script> 
    window.onunload = refreshParent; 
    function refreshParent() { 
     if(window.opener) 
      window.opener.location.reload(true); 
    } 
</script> 

默認情況下,重裝()方法重新加載從緩存的頁面,但可以迫使它通過傳遞參數設置爲true,重新載入服務器的頁面。

- 或 -

您也可以在父母的一些代碼,而你打開一個子窗口,如果它關閉刷新自身查找其子窗口..

<script type="text/javascript"> 
    var popup; 
    var lookupTimer=null; 
     function ShowPopup(url) { 
      if(popup) 
      { 
      popup.close(); 
      } 
      popup = window.open(url, "Popup", "toolbar=no,scrollbars=no,location=no, 
      statusbar=no,menubar=no,resizable=0,width=100,height=100,left = 490,top = 262"); 
      popup.focus(); 
      lookupTimer = setInterval(function(){ loolUpChild(); }, 1000); 
     } 
    function loolUpChild() 
    { 
     if((popup.closed)) 
       { 
       window.location.reload(true); 
       clearInterval(lookupTimer); 
       } 

    } 
    </script> 
+0

感謝幫助我的工作 –

+0

如何在子窗口關閉時刷新父窗口。上面寫的子窗口代碼。 –

+0

是的,它的工作很好。 –

0

創建一個全局變量和維護你的標誌,如果以前的彈出窗口打開再關閉第一和開闢新的 像

if(popup){ 
     popup.close(); 
     popup=false; 
    } 

之後打開新的

window.open(url, "Popup", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=100,height=100,left = 490,top = 262"); 
    popup = true; 
+0

@ Vishnu Katpure謝謝它爲我工作得很好 –