点击退出跳出frame框架并重定向到登录界面

传统的系统界面,有iframe页面,当用户退出系统或者session过期或者非法请求时,都要使当前页面跳转到登录页面。比如用户点击 退出的按钮 在上面得top.jsp里面,方法:<a href="../login/action_logout.do">退出系统</a>退出之后你会发现,只是刷新了top.jsp上面那个iframe,其他两个还在,当然不允许这样啦。解决办法大致有几种:常规的 退出系统 无非就是两种方式,一个是 点击超链接 ,页面跳转到登录页面,另一个就是 点击页面元素,触发js事件 ,使当前页面跳转。

1、利用超链接属性中target="_parent"。
在超链接中加入target属性
<a href="../login/action_logout.do"   target="_parent ">(或者<a href="../login/action_logout.do"  target="_top">) 退出系统</a>
就可以了,他的原理相当于目标页面替换当前的父窗体,而不是当前操作的窗体。
target属性值的含义:
_blank:新建窗口、_self:相同窗口、_parent:父窗口、_top:首窗口

2、利用js
1)<a href="#" οnclick=top.location.replace("logout.action")>退出</a>
在logout()函数中将session清空,返回的登录页面就会全屏显示登录页面.他的原理相当于在请求发送前,把请求的页面替换成当前页面最顶级的frame,这样返回的页面理所应当的会替换整个页面的内容。

2)在login.jsp中加入脚本
function window . onload () {
    if ( window .parent.length> 0 )
    window .parent.location=location; }
<script type= "text/javascript" >
if (top .location !== self .location ) {
top .location = self .location ; }
</script>
<script language= "JavaScript" >
<span style= "white-space:pre" > </span> if (window != top)
<span style= "white-space:pre" > </span> top.location.href = location.href;
</script>         
当登录页面在frame中加载过程中,会触发这段js代码,从而判断是不是顶级窗体而自动跳转。

这两种方法的区别就在于一个是 提交请求之前对请求进行处理 ,另外一个是 请求回来以后进行处理
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值