我想确保在某些情况下关闭窗口时用户得到警告(例如,未保存的数据)。效果很好。
但是:在关闭窗口之前,我还需要做一些清理工作,但之后我问用户是否真的要关闭它。
因此,我有两个回调函数,一个用于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
});
最佳答案
不幸的是,某些浏览器不支持此事件。您可以尝试使用pagehide
事件而不是onunload。
祝好运!