2012-06-22 175 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>