JQuery解决登录后菜单后退到登录页面还处于登录状态问题
在login.html登录页面添加以下代码
<script>
if(window.top!==window.self){
alert('未登录或登录超时。请重新登录');
window.top.location=window.location
};
window.addEventListener('pageshow', function (event) {
if(event.persisted || window.performance && window.performance.navigation.type == 2){ // 返回2则是点击返回
window.location.href="logout";
}
},false);
</script>
窗体各种类型属性详解
window.top: 返回当前窗口的最顶层浏览器窗口
window.self: 返回指向当前window对象的引用,利用这个属性,可以保证在多个窗口被打开的情况下,正确调用当前窗口内的函数或属性而不会发生混乱。
window.top.location: 返回最顶层浏览器窗口 URL 的信息
window.location: 返回有关当前 URL 的信息
event.persisted: 从缓存获取数据时为true,否则为false
window.performance: 浏览器暴露给js的一个接口,可以通过这个接口查看用户访问网站的信息。
window.performance.navigation.type: 返回值[0:用户通过常规导航方式访问页面,比如点一个链接,或者一般的get方式,1:用户通过刷新,包括JS调用刷新接口等方式访问页面,2:用户通过后退按钮访问本页面]
window.location.href: 返回完整的URL