我正在使用 nodejs 服务器来显示在线用户,但即使用户单击链接或刷新页面,它也会激活断开连接的功能,我试图绕过这一点,仅当用户关闭选项卡时才向服务器发送消息/window 使用以下代码:
var socket = io.connect('http://example.com:8000');
socket.emit('started', { username: "TestUser", });
var clicked = false;
$(document).ready(function() {
$("a[href]").click(function() {
clicked = true;
});
$(document).bind('keypress keydown keyup', function(e) {
if(e.which === 116) {
clicked = true;
}
if(e.which === 82 && e.ctrlKey) {
clicked = true;
}
});
});
window.onbeforeunload = function(e){
if(!clicked) {
socket.emit('userDisconnected', { user: "TestUser" });
}
};
这适用于用户单击链接以及用户按下 F5 时,但我如何检测他们是否单击了浏览器刷新按钮
我基本上希望仅在用户离开我的网站时发送 userDisconnected 消息
谢谢