1

ある種のタイマーを設定して onbeforeunload を動作させようとしていますが、リターンが設定されているときに起動できないようです。タイマーで動作することを願っていますが、何らかの理由でタイマーが機能していません。これが私が取り組んでいるコードです。ご覧いただきありがとうございます。

var validNavigation = false;

function wireUpEvents() {
    var leave_message = 'Leaving the page';

    jQuery(
        function goodbye() {
            jQuery(window).bind('onbeforeunload', function() {
                setTimeout(function() {
                    setTimeout(function() {
                        jQuery(document.body).css('background-color', 'red');
                    }, 10000);
                },1);

            return leave_message;
        });
    }); 

    function leave() {
        if(!validNavigation) {
            killSession();
        }
    }

    //set event handlers for the onbeforeunload and onunloan events
    window.onbeforeunload = goodbye;

    window.onunload=leave;
}

// Wire up the events as soon as the DOM tree is ready
jQuery(document).ready(function () {
    wireUpEvents();
});
4

2 に答える 2

7

onBeforeUnloadでは動作しませんsetTimeoutonBeforeUnload実行後、onUnloadがトリガーされ、ページが変更されます。これは、setTimeoutコールバックが呼び出される前に発生します。

于 2013-01-24T17:57:26.073 に答える