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

时间:2013-07-03 09:19:18

标签: javascript

我希望在用户未完成网页中的所有步骤的情况下删除已保存的数据。

这就是我所做的:

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

问题在于,如果用户点击“取消”,即使不刷新,页面仍会刷新。如果点击取消,我该如何避免刷新页面?

1 个答案:

答案 0 :(得分:0)

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

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