0

我写了一些代码,在离开页面之前会要求确认。如果我说是离开页面,那么需要进行一些清理。现在的问题是onunload方法得到了executed for page refresh但是not for page close,为什么?

代码:

function checkBrowser(){

    window.onbeforeunload=warning;
    window.onunload = unloadPage;

}
function unloadPage() {
        if($('#loginOrNot').val() == 'loggedIn'){
            setTheExpertStatusToOffline();
            cleanUpChat();
        }
}
function warning(){
        if($('#loginOrNot').val() == 'loggedIn'){
            return "You are leaving the page"; 
        }
}
4

2 回答 2

4
window.onload=function(){

document.getElementById('refresh').onclick=function() {
    window.onbeforeunload = null;
    window.location.reload(); // replace with your code
}

window.onbeforeunload = function() {        
    return "Are you sure you want to leave?";        
}

}​ 
于 2012-12-12T06:37:27.653 回答
1

onunload事件仅在页面被重定向或刷新时起作用。仅onbeforeunload在关闭时有效..

编辑: 简单来说原因可能是一旦浏览器关闭,它就不会执行应该为onunload事件发生的代码

于 2012-08-03T07:28:12.673 回答