2010-06-15 26 views
2

显然,在IE8中,即使我取消选中“保留收藏夹网站数据”选项,浏览器仍会保留Cookie,直到最后一个窗口关闭。即使一个窗口仍然打开,如何强制删除Cookie?

问题场景。说我登录到somesite.com,然后没有注销,我关闭了窗口,但还有另一个IE8窗口打开。在这种情况下,IE8会保留这个网站的cookies。因此,如果我再次打开该网站(相同的窗口或另一个),该网站不会要求登录信息。

客户希望在用户关闭浏览器后立即注销Web应用程序。我可以强制删除IE8正在保存的cookie吗?或者我可以阻止用户关闭窗口,直到我模拟点击注销按钮?

回答

2

谢谢大家,我已经尝试了很多方法,包括你的,并没有得到它的工作。

我的解决方案如下: 当用户单击X按钮(浏览器关闭)时,将调用一个javascript onunload函数。该功能模拟点击logout按钮。该功能会暂停浏览器,直到注销被执行。

代码:

window.onunload = function() { 
    document.getElementById('logoutLink').click(); 
    windows.setTimeout(doNothingFunction,2000); 
} 

一个副作用是,该功能将在每次用户导航出当前页面的时候居然叫,不仅在窗口关闭。
解决方案,当页面导航到页面时,标志closingWindow被设置为false。但是当用户点击X按钮时,标志不会被设置为false。

解决副作用的新功能。

window.onunload = function() { 
    if (closingWindow){ 
     document.getElementById('logoutLink').click(); 
     windows.setTimeout(doNothingFunction,2000); 
    } 
} 
1

您可以在浏览器的onunload事件中设置负面过期日期的cookie吗?

1

您可以通过发送frefuent ajax请求来控制窗口的存在。当客户端加载新页面时,您应该验证上次检查请求的时间。

相关问题