首頁  >  文章  >  web前端  >  js父視窗關閉時子視窗隨之關閉完美解決方案_javascript技巧

js父視窗關閉時子視窗隨之關閉完美解決方案_javascript技巧

WBOY
WBOY原創
2016-05-16 16:50:391292瀏覽

最近,遇到一個權限管理的系統。由於權限管理的系統和原本的系統風格不一致,所有新開啟一個視窗。問題來了,admin註銷之後,權限管理的視窗沒有關閉。其他普通使用者登入以後,仍可操作權限管理的視窗。

問題簡化:admin註銷的時候,或是main.html關閉的時候,打開的所有新視窗一起關閉。問題就解決了

直接看程式碼吧:

複製程式碼 代碼如下:



Insert title here



開啟新視窗
退出登入



<script> <br>//使用者記錄所有開啟的子視窗<br>var win_Array = new Array(); <BR>var win_num = -1; <BR><BR>//每次開啟新視窗都記錄下來<br>function openNew(uri,param){ <br>win_num = win_num 1; <BR>win_Array[win_num] = window.open(uri); <BR>} <BR><BR><br>//用戶登出的時候,執行關閉方法。 body新增onUnload = "closeNews();" 當main視窗關閉時候,所有的子視窗關閉<br>function closeNews(){ <BR>//關閉權限管理<BR>if(win_Array.length > 0){ <BR>for(var i = 0;i <= win_Array.length;i ){ <BR>var win_one = win_Array[i]; <BR>if(win_one != undefined){ <BR>win_one.close(); <BR>} <BR>} <BR>} <BR>} <BR><br>function logOut(){ <br>//關閉子視窗<BR>closeNews(); <BR><br>//登出登入<br>} <BR><br></script>

說明:

在body上加上onUnload事件很重要。即:當視窗關閉以後,執行關閉所有子視窗的方法。

測試:在web專案中,ie8,ie10,火狐,chrome,opera都沒有問題。

一旦不放倒wen容器中,只是靜態的main.html頁面的時候,ie有問題,因為靜態的時候,ie的window.open()居然是打開新頁面,不是打開新標籤。所有關閉視窗的方法不再有效。

時間有限,還沒有花精力去細究,還望知道為什麼的js技術大神 可以指導一下。再次致謝。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn