Javascript 检测用户何时关注文档

Javascript 检测用户何时关注文档,javascript,jquery,mutation-observers,Javascript,Jquery,Mutation Observers,我有一个两个人的聊天应用程序,例如,其中一个人向另一个人发送消息 当第二个元素传递并聚焦于文档时,浏览器会检查父div中的最后一个元素是否有类“his_message”,如果有,浏览器(通过socket.io)会将消息发送给第一个用户(发送消息的用户),告知其合作伙伴已看到他的消息,否则:不执行任何操作 这就像Facebook的“看到”功能,当Facebook通知你你的聊天伙伴看到了你的信息 我使用MutationObserver实现了我想要的: const observer = new Mut

我有一个两个人的聊天应用程序,例如,其中一个人向另一个人发送消息

当第二个元素传递并聚焦于文档时,浏览器会检查父div中的最后一个元素是否有类“his_message”,如果有,浏览器(通过socket.io)会将消息发送给第一个用户(发送消息的用户),告知其合作伙伴已看到他的消息,否则:不执行任何操作

这就像Facebook的“看到”功能,当Facebook通知你你的聊天伙伴看到了你的信息

我使用MutationObserver实现了我想要的:

const observer = new MutationObserver((mutations)=>{   
    if(document.hasFocus()){
    console.log($('#output > :last-child').attr('class'));
    socket.emit('seen')
    }
 })

observer.observe(output, { attributes: true, childList: true, characterData: true, subtree: true });

但是如果你测试它,你就会知道它不是我想要的那样工作。那么我能做些什么来达到我的目标呢?谢谢

我认为最好的方法是将easch消息与一个数据库列(比如:is_seen)相关联,其中它采用布尔值。。。聚焦完成后,将数据库中的值更新为True…然后您可以获取该值,以便在消息被单击时显示,就像在messenger应用程序中一样。

您正在查找文档。onFocus?输出的值是多少?@ControlAltDel这是一种很好的方法,但问题是它将发出“SEED”每次文档都会有焦点soo..@ksav output.innerHTML+=

+encodesMessage+”

“此代码块在发送时动态添加message@iLia你不必每次都发出“看见”的声音。在onFocus中,检查消息是否在文档末尾,并且仅当它感谢您的建议但不是我想要的时才发出