我希望在用户关闭浏览器或标签页时使会话无效,但在用户刷新页面时却无效
beforeunload
事件触发hyperlink click
,form Submission
,Refresh
和Browser Close
。
我检测到表单提交和超链接点击,但无法区分Refresh
和Close
使用的代码:
var isLinkOrForm=false;
$("a").click(function(){
isLinkOrForm=true;
});
$("form").submit(function (e){
isLinkOrForm=true;
});
$(window).bind("beforeunload",function(){
console.log("Bind Event Invoked : "+isLinkOrForm);
if(!isLinkOrForm){
console.log("Inside the Invalidate Session condition :+isLinkOrForm);
window.setTimeout(invalidateSessionOnBrowserClose(),500);
}
return null;
});
但是这个代码会在Refresh和Browser Close上都失效。如何在Page Refresh
**注意:**在其他帖子中描述了基于Cookie的解决方案,但这不起作用