2012-06-22 224 views
0

在我父母的jsp頁面我用:彈出窗口的父窗口後不關閉在重裝

function popUpClosed() { 
    window.location.reload(); 
} 

而且在孩子(彈出窗口)我用:

<script type="text/javascript"> 
     window.onunload = function() { 
       if (window.opener && !window.opener.closed) { 
       window.opener.popUpClosed(); 
       } 
     }; 
</script> 

通過這段代碼,父窗口在從彈出窗口插入數據後重新加載,但彈出窗口未關閉,我必須手動關閉彈出窗口。 如何使彈出窗口自行關閉?

回答

0

要關閉在彈出窗口中改變這樣的代碼:

<script type="text/javascript"> 
     window.onunload = function() { 
       if (window.opener && !window.opener.closed) { 
       window.opener.popUpClosed(); 
       } 
       window.close(); 
     }; 
</script> 

參考這裏:How to close the current window。每當您的頁面卸載時調用 onunload。 如果您要發佈數據,請通過提交按鈕卸載文檔。

這與關閉窗戶不一樣。 如果你想只捕獲窗口的關閉,你應該使用類似:

window.onbeforeunload = windowExit; 
function windowExit(){ 
    //do somethng 
    //check that you are not submitting. 
} 
+0

重載父窗口我已經關閉彈出窗口之後。 Iam新來JS。請告訴我,在哪裏放置代碼以及在代碼中進行更改。謝謝你... – sam

+0

我修改了我的答案,看看。這應該關閉彈出窗口。 – nunespascal

+0

onunload和onbeforeunload捕獲相同的窗口事件事件,onbeforeunload在onunload之前執行。 – Ian

0

這裏有兩個打開和關閉彈出窗口的示例函數。如果您在變量內創建窗口,則可以將您打開的窗口作爲目標,這意味着您可以關閉它。

<script> 
function openWin() 
{ 
    myWindow=window.open("","","width=200,height=100"); 
    myWindow.document.write("<p>This is 'myWindow'</p>"); 
} 

function closeWin() 
{ 
    myWindow.close(); 
} 
</script>