用户确认“离开页面”时触发javascript函数

当用户试图离开页面时,我使用下面的代码来confirmExit()函数:

 window.onbeforeunload = confirmExit; function confirmExit(){ return "Are you sure you want to exit this page?"; } 

此外:

该页面还会激活AJAX函数以“即时”更新数据库。 因此,当用户离开页面时,我需要删除所有“即时”数据。

当用户点击“离开页面”按钮时,是否可以调用javascript函数?

您可以尝试使用window.onunload

 window.onbeforeunload = function () { return "Are you sure?"; } window.onunload = function () { console.log("Too bad. Goodbye."); } 

window.onunload仅在用户单击“离开此页面”按钮时才会触发。

如果您想在用户点击“取消”时执行某些操作,可以尝试以下方法:

 window.onbeforeunload = function () { setTimeout(function () { setTimeout(function () { console.log("Great decision!"); }, 200); }, 1); return "Are you sure?"; } 

第一个setTimeout将您的代码放入事件队列。 它将在确认框关闭后立即触发。 如果页面未过早关闭,则会在一段时间后触发第二个setTimeout

对于那些正在进行某些XHR onunload :确保在页面关闭之前使用同步方法来完成您的请求。 例如,在jQuery.ajax中的jQuery.ajaxXMLHttpRequest.open(method, url, false)中使用async: false