检测用户是否正在离开页面,并使用ajax进行删除

Detect if the user is leaving the page and delete with ajax

本文关键字:ajax 删除 是否 用户 离开 检测      更新时间:2023-09-26

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

这就是我所做的:

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调用,并在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}
            });
}