1

在我的应用程序中,我需要在 onbeforeunload() 中调用注销函数,所以我执行了如下代码。

window.onbeforunload = function(){
bodyWidth = window.document.body.offsetWidth;
bodyHeight = window.document.body.offsetHeight
mouseX = window.event.clientX;
mouseY = window.event.clientY;
    if((mouseX<0) || (mouseY<0) || (mouseX > bodyWidth)  || (mouseY > bodyHeight)){
        logout();
    }
}

(X)当我按下IE 中的按钮关闭窗口时,它工作正常。

但是,如果我按ATL+关闭 IE 窗口,F4这不起作用。在执行该logout()功能之前,浏览器会关闭。

任何人都可以帮助我正确使用window.onbeforunload.

我什至尝试了以下功能,但它不起作用

logout=true;
window.onbeforeunload = bfunload;
window.onunload = unloadPage;
function bfunload(){
bodyWidth = window.document.body.offsetWidth;
bodyHeight = window.document.body.offsetHeight
mouseX = window.event.clientX;
mouseY = window.event.clientY;
    if((mouseX<0) || (mouseY<0) || (mouseX > bodyWidth)  || (mouseY > bodyHeight)){
        logout=false;
        logout();
    }
}
function bfunload(){
if(logout){
    logout();
}

}

4

2 回答 2

2

不可能知道关闭窗口的所有操作。如果用户在他们的桌面上踢线,代码将永远不会运行。飓风来袭,切断了电源。如果他们失去了互联网连接。如果他们通过地址栏/书签离开。

处理结束会话的唯一方法是服务器上的会话超时。

于 2012-11-02T13:28:26.553 回答
0

JavaScriptwindow.onbeforeunload()事件在网页卸载之前触发。这使我们能够确保用户确定要离开他们正在查看的页面。

通过按Alt+F4操作系统直接关闭浏览器应用程序。如果没有打开任何窗口,它将弹出关闭对话框。

首选的执行方式Logout FunctionalitySessions在您的应用程序中使用。

于 2012-11-02T13:49:35.293 回答