完全是出于对信息安全的考虑,因为一般都会设置session来控制用户对一些页面的非法访问。但session防止不了浏览器的后退。也就是说你退出登录后,如果不关闭页面,还是有可能泄露信息的。下面是两种方式,当然并不只有两种,而且肯定有更好的方式。(测试主要针对IE6、7、8)
1、关闭旧页,打开新页:
function co(){
window.open("跳转页url","newwindow");
window.opener = null;
window.close();
}
缺点:IE7下会弹出确认关闭网页的提示
2、页面自动刷新一次,这样即使后退了,也看到的是刷新后经过session验证的页面。
有两种方法能做到:
(1)通过url刷新:
function refresh(){
url = location.href; //把当前页面的地址赋给变量 url
//分切变量 url 分隔符号为 "#"
if( url.indexOf("#") == -1){ //如果url后没有#
url += "#"; //加入 #
self.location.replace(url); //刷新页面
}
}
(2)通过cookie刷新:
//自动刷新一次,如果没登录过,新建一个cookie:views 置为1,根据views是否有值判断是否是第一次浏览,如果是第一次就刷新。
function autoRefresh() {
if (getCookie("views") != 1) {
document.cookie = "views = 1";
if (getCookie("view") != 1)
location.reload()
else
refresh();//如果浏览器不允许写cookie 则用url刷新方法,确保万无一失。
} else{
delCookie("views");
}
}
function getCookie(name) {
//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for ( var i = 0; i < arrStr.length; i++) {
var temp = arrStr[i].split("=");
if (temp[0] == name)
return unescape(temp[1]);
}
return null;
}
function delCookie(name){
//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=a; expires=" + date.toGMTString();
}