这是我的情景: 用户开始编辑帖子,上传照片,然后关闭浏览器,或跳转到其他页面。
我希望能够删除上传的照片并向用户发出相应的警告。
我知道有一个函数window.onbeforeunload 但我不确定我是否做对了
window.onbeforeunload = askExit;
function askExit(){
return "Are you sure you want to exit this page?";
}
现在,如何捕捉按钮“离开此页面” 所以我可以开第二个功能来清理会话,照片等?
答案 0 :(得分:1)
嗯,理论上,you can't:
beforeunload的主要目的是允许用户选择在更改丢失之前保存更改。
但是,您可以在技术上使用onfocus
/ onunload
一些魔法来执行此操作:
var isFromUnloadDialog = false;
window.addEventListener("beforeunload", function() {
isFromUnloadDialog = true;
return "Are you sure you want to exit this page?";
});
window.addEventListener("focus", function() {
if (isFromUnloadDialog) {
// User canceled the unload
isFromUnloadDialog = false;
}
});
window.addEventListener("unload", function() {
// User didn't cancel the unload; clean up
});
如果你还没看过它,那么This也值得一读。