onunload不能与Safari中的onbeforeunload结合使用

时间:2016-02-24 09:30:57

标签: javascript safari onbeforeunload onunload

我想确保用户在某些情况下关闭窗口时会收到警告(例如,未保存的数据)。效果很好。

但是:我还需要在窗口关闭之前做一些清理工作,但在我询问用户是否真的要关闭它之后。

所以我有两个回调函数,一个用于onbeforeunload,它将抛出确认对话框,另一个用于onunload,应该进行清理。

不幸的是,在Safari中,似乎没有调用onunload回调。

为什么?

$(window).on('beforeunload',function() {
    if (connected)
        return "Are you sure you want to close the window!";
});

$(window).on('unload',function() {
    localStorage.removeItem("someItem"); // never executed in Safari
});

1 个答案:

答案 0 :(得分:0)

不幸的是,某些浏览器不支持此事件。您可以尝试使用pagehide事件而不是onunload。

祝你好运!