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

2024-01-03

我正在使用下面的代码来触发confirmExit()当用户尝试离开页面时函数:

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

此外:

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

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


您可以尝试使用window.onunload https://developer.mozilla.org/en-US/docs/Web/API/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 https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout将您的代码放入事件队列。确认框关闭后它将被触发。第二setTimeout如果页面没有太快关闭,将会在一段时间后被触发。

对于那些正在做一些 XHR 的人onunload:确保在页面关闭之前使用同步方法完成您的请求。例如。使用async: false in jQuery.ajax or XMLHttpRequest.open(method, url, false)用普通的js。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当用户确认“离开页面”时触发 javascript 函数 的相关文章

随机推荐