这是我捕获用户离开页面的方式。
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>
现在我想要的是捕获用户点击“离开此页面”并将某些内容插入数据库。这怎么可能?
答案 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中完成了这项工作,而且通常很成功。