У меня есть приложение чата для двух человек, и, например, один из них отправляет сообщение второму.
Когда второй доставляет документ и фокусируется на нем, браузер проверяет, есть ли у последнего элемента в родительском 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 });
Но если вы проверите это, вы будете знать, что это не работает, как я хочу.Итак, что я могу сделать, чтобы достичь своей цели?Спасибо!