Javascript 检测用户是否离开页面并使用ajax删除

Javascript 检测用户是否离开页面并使用ajax删除,javascript,Javascript,如果用户没有完成我网页中的所有步骤,我希望删除保存的数据 这就是我所做的: window.onbeforeunload = confirmExit; function confirmExit() { if (!$('body').find('.wizard_completed').attr('class')) { if (confirm($('body').find('.exit_confirm').html())) { $.ajax({

如果用户没有完成我网页中的所有步骤,我希望删除保存的数据

这就是我所做的:

window.onbeforeunload = confirmExit;

function confirmExit()
{
    if (!$('body').find('.wizard_completed').attr('class')) {
        if (confirm($('body').find('.exit_confirm').html())) {
            $.ajax({
                type: 'POST',
                data: {action: delete_event}
            });
        }
    }
}

问题是,如果用户单击“取消”,即使不应该刷新页面,页面也会被刷新。如果单击“取消”,如何避免刷新页面?

您必须使用
onunload
事件进行AJAX调用,并在
onbeforeuload
中显示消息:

window.onbeforeunload = confirmExit;
window.onunload = onunload;

function confirmExit()
{
    if (!$('body').find('.wizard_completed').attr('class')) {
        return $('body').find('.exit_confirm').html();
    }
}

function onunload(){
     $.ajax({
                type: 'POST',
                data: {action: delete_event}
            });
}

$('body').find('wizard_completed').attr('class')
->
$('wizard_completed').length
$('body').find('exit_confirm')('exit_confirm')这是对代码的建议编辑。@mishik谢谢,但我的问题呢?:)答案部分为答案。建议和问题的评论部分。