退出和注销按钮都是放在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("<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(); 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>
这样它会先在另一个窗口跳出脚本提示!
而退出整个系统脚本上有点问题
<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; //不过这个我暂时还不知道什么意思,应该是刷新原来的页面 top.close(); </script> <% } } %></body>
解决方法2:
刚问了一个网友,他给我提供的一种脚本的方法,不用提交到其他页面处理,只在本页面,很不错的 !!!
<script language="javascript"> function exit(){ window.open('../login/login.jsp','_top') } </script>
<input type="button" value="退出" onclick="exit();" />
新闻热点
疑难解答