在离开页面之前插入到数据库中

Inserting into database just before leaving the page

本文关键字:插入 数据库 离开      更新时间:2023-09-26

这就是我捕获用户离开页面的方式。

window.onbeforeunload = function (evt) {
    var message = "Are you sure you want to leave?";
    if (typeof evt == 'undefined') {
        evt = window.event;
    }
    if (evt) {
        evt.returnValue = message;
    }
    return message;
}
</script>

现在我想要的是捕获单击"离开此页面"的用户并将一些内容插入数据库。这怎么可能?

如果您不向他们显示对话框,您可以(尝试)捕获离开的用户。(如果您确实向他们展示了对话框,则没有太多选项。

您必须在 onebeforeunload 中对服务器执行同步请求。

onbeforeunload = function() {
    var data = 'id=123';
    var xhr = new XMLHttpRequest;
    xhr.open('POST', '/imleavingthepage', false);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", data.length);
    xhr.send(data);
}

但要知道,这不一定可靠。 onbeforeunload不是标准的,浏览器甚至可能不会发送请求。

但是,我已经在Chrome中完成了此操作,并且通常是成功的。