2015-09-28 147 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(並查看本頁提到的相同來源政策,以檢查您是否可以執行您想要的操作)。