在WEB應用中,一般通過監控SESSION來判斷用戶是否登錄、或是否發呆時間過長。如果SESSION過期或用戶未登錄,用戶再次向服務器請求資源的時候,就跳轉(重定向)到登錄頁面。
可實際上,用戶在請求資源的時候,頁面的狀態可能有多種:帶框架的頁面、window.open()函數打開的窗口。這時候跳轉(重定向)到登錄頁面就會有問題。其實可以拿過一個簡單的腳本來解決這個問題:
<script type="text/javascript">
if(window.opener){
//若是彈出的打開窗口,刷新父窗口,就關閉本窗口
window.open.reload();
window.close();
}
else{
var topwin = window.parent;
//找到頂層窗口
while(topwin!= topwin.parent){
topwin = topwin.parent;
}
if(window.parent!=window)
topwin.location.href=
"${pageContext.request.contextPath}/index.jsp";
}
</script>
作者“ERDP技術架構”