2015-09-28 145 views
3

我有一个网站,点击一个按钮将在子窗口中打开用户。父窗口用户注销时关闭特定的子窗口

var childWindow=window.open('<?=$this->config->item('base_url').'after_login/portfolio' ?>', 'bypassed_user_window','height=' + screen.height + ',width=' + screen.width + ',resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 

现在,我想在父窗口用户注销时关闭此子窗口。 我正在使用Codeigniter。 如果我在我的控制器中给出<script>childWindow.close();</script>,它给出了未定义的childWindow,这只是预期的。那么现在怎么样关闭窗户。谢谢!

回答

0

childWindow确实是undefined。所以,要实现你正在尝试做的事情,你需要一个对这个窗口对象的引用。你可以尝试这样的事:

<script type="text/javascript"> 
    var childWindow = window.open('', 'bypassed_user_window'); 

    if (childWindow !== null) { 
     childWindow.close(); 
    } 
</script> 

首先,我不是100%肯定这是否会在每个浏览器工作,但如果指定相同的名称之前,你应该得到相同的窗口。如果您返回到此对象的相同引用取决于在原始窗口和打开的窗口中使用的域/端口。如果关闭此窗口不起作用,您可以将此窗口发送到另一个您关闭窗口本身的URL。欲了解更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/open(并查看本页提到的相同来源政策,以检查您是否可以执行您想要的操作)。