0

ページを離れる前に確認を求めるコードをいくつか書きました。はい、ページを離れる場合は、クリーンアップを行う必要があります。問題はonunloadメソッドが取得されていることですexecuted for page refreshnot 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 に答える