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

时间:2013-11-09 06:16:57

标签: c# javascript asp.net .net c#-4.0

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

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>

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

1 个答案:

答案 0 :(得分:1)

如果您没有向他们显示对话框,您可以(尝试)捕获用户离开。 (如果你确实向他们展示了对话框,那么就没有很多选择。)

您必须在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中完成了这项工作,而且通常很成功。