使用onbeforeunload时禁止确认对话框

Nir*_*pla 6 javascript jquery onbeforeunload

我正在使用onbeforeunload事件发送ajax请求来执行一些清理任务.

当我使用onbeforeunload时,它会在关闭选项卡时显示确认对话框.我想要的不是显示任何确认对话框,只是发送清理请求.以下是我正在使用的脚本.

    window.onbeforeunload = unloadFunction;
    function unloadFunction() {
        var test_id = $('#test_id').val();

        jQuery.ajax({
            url: "/test/cleanup/" + test_id,
            cache: false
        }).done(function () {
            return false;
        });
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以抑制确认对话框吗?

根据一些建议,我试图改变return语句return ;而不是return false;.但这也行不通.

Del*_*ian 2

根据我对原始帖子的评论,答案是通过添加async: falseAjax 调用设置来使调用同步,将最后一个 return false 更改为return null;,并删除 did 函数:

window.onbeforeunload = unloadFunction;
function unloadFunction() {
    var test_id = $('#test_id').val();

    jQuery.ajax({
        url: "/test/cleanup/" + test_id,
        cache: false,
        async: false
    });

    return null;
}
Run Code Online (Sandbox Code Playgroud)