onbeforeunload和onunload让一个人继续工作

时间:2012-09-24 18:33:58

标签: javascript onbeforeunload onunload

我在卸载和卸载方法之前遇到了一些问题。我认为我在onload方法上设置正确的代码只在onbeforeunload的confirm方法设置为true后启动。但遗憾的是情况并非如此,即使将onbeforeunload方法设置为false并且该人想要留在网站上,正在发生的是卸载方法正在启动。以下是我正在处理的代码已经发生了很大变化,因为我开始希望它没关系。我确信它不是因为它不按照我想要的方式工作。

 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();
 });

1 个答案:

答案 0 :(得分:3)

onbeforeunload不像您认为的那样有效。你可以从处理程序返回一个字符串,它会提示一个消息,或undefined什么也不做。

window.onbeforeunload = goodbye;

function goodbye(e) {
    if (!validNavigation) {
        return leave_message;
    } else {
        return undefined;
    }
}

相关:Way to know if user clicked Cancel on a Javascript onbeforeunload Dialog?