如果用户当前在页面上或另一个标签页上,如何使用javascript进行检查? 我想聊聊时添加新邮件通知,但前提是用户在另一个标签页上。
答案 0 :(得分:2)
您可以使用聊天框作为功能。
获取焦点或模糊事件,然后添加通知功能。
如果您仍想坚持这一点,请尝试以下:window.onblur
或window.onfocus
事件并添加功能。
答案 1 :(得分:0)
您可以设置cookie onload,并在onbeforeunload上删除它。这样,如果cookie已设置为onload,则表示用户已在访问您的页面。
答案 2 :(得分:0)
鉴于您要求的内容,即确认用户是否在您的页面或其他标签上,我不认为检查聊天框上的焦点是否合适。如果用户完全点击了框外,那么他们的状态将变为非活动状态。
鼠标悬停触发器
相反,我会检测<body>
元素上的鼠标悬停事件。你的触发器看起来像这样:
<body style="min-height:600px; width:100%;" onmouseover="changeStatus(true);" onmouseout="changeStatus(false);">
显然你必须改进css或设置一个javascript函数,以确保<body>
元素填满整个屏幕。
事件处理程序
然后你会设置一个处理触发器的javascript函数,如下所示:
<script type="text/javascript">
var i=0;
var pageStatus=true;
function changeStatus(status) {
i+=1;
if (status==true) {
console.log(i+' Page is active');
pageStatus=true;
/* change the users status to active */
} else {
pageStatus=false;
window.setTimeout(function() { if(pageStatus==false) { console.log(i+' Page is inactive'); /* change the users status to inactive */ } }, 1000);
}
}
</script>
我建议你在更改用户状态之前对onmouseout触发器有一些延迟,因为有时候鼠标会离开页面一秒钟,而用户不会切换到另一个标签或程序。我上面写的函数边缘有点粗糙,但应该形成一个声音基础来开发完整的事件处理程序。