退出和注銷按鈕都是放在top的窗口中
注銷頁面:
<td align="center" width="5%"><a href="main/exit.jsp?id=1" 注銷</a></td>
<td align="center" width="5%"><a href="main/exit.jsp?id=2" 退出</a></td>
處理頁面:
<body> <% if(session.getAttribute("username")==null||session.getAttribute("username")==""){ response.sendRedirect("../login/login.jsp"); return; } else { if(request.getParameter("id").equals("1")){ session.invalidate(); out.PRintln("<scrjavaScript'>alert('確定要注銷嗎?');"+"window.top.location.href='../login/login.jsp';</script>"); } // out.println("<script language='Javascript'>alert('確定要退出嗎?');"+"window.location.href='../login/login.jsp';</script>"); else{ session.invalidate(); out.print("<script language='javascript'>top.close();</script>"); } } %></body>
這種方法只退出top的框架,左右框架都沒退出,查點資料,原理方法很簡單:
解決方法1:
只要在注銷頁面和退出加個target="_top"就可以了
<td align="center" width="5%"><a href="main/exit.jsp?id=1" target="_top">注銷</a></td> <td align="center" width="5%"><a href="main/exit.jsp?id=2" targer="_top">退出</a></td>
這樣它會先在另一個窗口跳出腳本提示!
而退出整個系統(tǒng)腳本上有點問題
<body> <% if(session.getAttribute("username")==null||session.getAttribute("username")==""){ response.sendRedirect("../login/login.jsp"); return; } else { if(request.getParameter("id").equals("1")){ session.invalidate(); out.println("<script language='javascript'>alert('確定要注銷嗎?');"+"window.top.location.href='../login/login.jsp';</script>"); } // out.println("<script language='javascript'>alert('確定要退出嗎?');"+"window.location.href='../login/login.jsp';</script>"); else{ session.invalidate(); %> <script language="javascript"> top.opener=null; //不過這個我暫時還不知道什么意思,應(yīng)該是刷新原來的頁面 top.close(); </script> <% } } %></body>
解決方法2:
剛問了一個網(wǎng)友,他給我提供的一種腳本的方法,不用提交到其他頁面處理,只在本頁面,很不錯的 ?。?!
<script language="javascript"> function exit(){ window.open('../login/login.jsp','_top') } </script>
<input type="button" value="退出" onclick="exit();" />
新聞熱點
疑難解答