-2

我看到 Chrome 不允许在unload函数中使用警报

$(window).on('unload', function(){

    alert("ciao");

});

但是 JSFIDDLE 是如何做到的呢?

在开发工具中,我可以看到我可以勾选一个框,该框将在 EventListener Breakpoints --> Load --> Unload 上停止执行

但我看不到真正发生了什么。他们是怎么做到的呢?

编辑:代码

    $(window).on('unload', function(){
        //delete files      
        $.ajax({
            type: "post",
            url: "delete_files.php",
            data: {
                test: $("body").data("test_name");
                prod: $("body").data("prod_name");
                prodAd: $("body").data("prodAd_name");
            },
            dataType: "html",
            success: function(returnedData){

                console.log(returnedData);
            }
        });
    });
4

2 回答 2

1

大约一年前,我一直在努力解决这个问题。

我最终使用了这个解决方案:

$(window).on('beforeunload', function() {
    $.get('http://some-page.php');
});

在我们的例子中,some-page.php是一个清理用户会话的 JSP。

进一步阅读有关该beforeunload事件的信息。

于 2013-08-08T22:44:15.407 回答
1

在您更改了一些内容之后,您的 AJAX 调用工作得很好。您发送的数据是一个对象。你;的包含会出错。这可能就是它不起作用的原因。

$(window).bind('unload', function(){ 
    //delete files      
    $.ajax({
        type: "post",
        url: "test.php",
        data: {
            test: $("body").data("test_name"),
            prod: $("body").data("prod_name"),
            prodAd: $("body").data("prodAd_name")
        },
        dataType: "html",
        success: function(returnedData){

            console.log(returnedData);
        }
    });
});
于 2013-08-08T22:44:30.913 回答