退出系统时跳出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> 就可以了,他的原理相当于目标页面替换当前的父窗体,而不是当前操作的窗体。
target属性值的含义:
_blank:新建窗口、_self:相同窗口、_parent:父窗口、_top:首窗口
2、利用js
1)<a href="#" onclick=top.location.replace("logout.action")>退出</a>
在logout()函数中将session清空,返回的登录页面就会全屏显示登录页面.他的原理相当于在请求发送前,把请求的页面替换成当前页面最顶级的frame,这样返回的页面理所应当的会替换整个页面的内容。
2)在login.jsp中加入脚本
|
1
2
3
4
5
|
function window.onload() { if(window.parent.length>0) window.parent.location=location; } |
或
|
1
2
3
4
5
|
<script type="text/javascript"> if (top.location !== self.location) { top.location=self.location;}</script> |
或
|
1
2
3
4
|
<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代码,从而判断是不是顶级窗体而自动跳转。
这两种方法的区别就在于一个是提交请求之前对请求进行处理,另外一个是请求回来以后进行处理。
退出系统时跳出frame框架的更多相关文章
- java web session过期 跳转页面没有跳出frame的问题
对于frame页面框架的java web项目,如果session过期执行跳转操作时,只在一个frame中(例如center frame)跳转到设置的login页面了,为了能直接跳转到最初的登录页面,就 ...
- 开发数学系统时,需要掌握的几个基于Web的数学框架
在做数学系统时,经常要和数学公式打交道,这里介绍几个常用的基于Web的数学处理软件. 数学系统主要包括三类:(1)数学公式的显示,也就是如何使用web显示复杂的数学公式. (2)图像制作,例如长方形, ...
- RobotFramework:切换页面和Frame框架
切换页面主要有以下两种情况 在浏览器上打开多个窗口(Windows),在窗口内切换 打开多个浏览器(Browser),在多个浏览器内切换 1. 切换窗口 该操作适用于:打开两(多)个窗口页面,在打开的 ...
- 当session过期后自动跳转到登陆页而且会跳出iframe框架
写项目时在重定向后一直存在一个问题就是重定向后登陆页面会出现在跳出的子框架里.
- JavaScript刷新页面的方法(包括Frame框架的刷新方式)
JavaScript刷新页面的方法 1 history.go(0) 去指定的某页 2 window.location.reload()刷新当前页面 window.location.relo ...
- 【WPF】退出应用时的提示弹窗
需求:按MainWindow右上角的[X]想要退出软件时,弹窗提示是否确定要退出. 主界面(ShellWindow)的前台给主界面窗体添加两个事件:Closing和Closed <Window ...
- ios系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
- 结合《需求征集系统》谈MVC框架
结合<需求征集系统>分析MVC框架. 六个质量属性: 可用性:在系统压力过大时,会提示系统繁忙. 可修改性:使用配置文件,修改配置文件即可.对于一些公共的方法,进行封装,修改时,只需修改封 ...
- html5-6 Frame框架窗口类型
html5-6 Frame框架窗口类型 一.总结 一句话总结: 1.点左侧的a链接如何打开右侧页面? <a href='user/index.html' target='right'>& ...
随机推荐
- 第二个Sprint冲刺项目github
https://github.com/22shaojiawen/the-second-sprint-project
- 避免每次输入bundler Exec命令
bundle在ruby的世界里是个好东西,它可以用来管理应用程序的依赖库.它能自动的下载和安装指定的gem,也可以随时更新指定的gem. rvm则是一个命令行工具,能帮助你轻松的安装,管理多个ruby ...
- ex26 纠正练习
题目中给出的代码如下: def break_words(stuff): """This function will break up words for us." ...
- day13_API第三天
1.StringBuffer类(掌握) 1.概念 字符串缓冲区类 2.机制 StringBuffer采用的是缓冲区机制. 一开始,首先开辟一些空间,然后,随着数据的增多,还可以继续 ...
- Socket编程基础——面向连接TCP
WinSock是Windows环境下的网络编程接口,它最初是基于Unix环境下的BSD Socket,是一个与网络协议无关的编程接口.WinSock包含两个主要版本,即WinSock1和WinSock ...
- python ftplib.FTP 获取当前路径下所有目录
FTP 模块里有一个dir函数,可以打印出当前路径下所有文件,但是这个函数没有返回值,只是打印出来. 还有一个nlst函数,可以返回一个文件名的列表,但是只有文件名,没有详细信息,无法判断是否是目录. ...
- Webview 与h5的交互
步骤:H5代码 <html> <head> <meta charset="UTF-8"> <title>交互Demo ...
- 2016HUAS_ACM暑假集训2G - Who's in the Middle
这个题真的没什么好说的.一个排序就能解决的问题.唯一感到不爽的是这道题不是0msAC的,希望各位大神能够给我点指导. 头文件#include<algorithm>,注意一下排序函数的用法就 ...
- Python字典实现三级菜单
################################################ # Task Name: 三级菜单 # # Description:打印省.市.县三级菜单 # # 可 ...
- DB_MYSQL_mysql-5.7.10-winx64解压版安装笔记
1.http://dev.mysql.com/downloads/mysql/ 里面下载Windows (x86, 64-bit), ZIP Archive mysql-5.7.10-winx64.z ...