Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.12.2019, 11:29
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

Как отслеживать изменение содержимого элемента (div, span)?
Здравствуйте. Хочу дописать для себя скрипт в вк, типа "антиудаление сообщений". В сообщениях есть span с классом nim-dialog--preview _dialog_body. Подскажите, можно ли как-нибудь отслеживать каждые изменения этого блока? Выводить содержимое себе куда-нибудь я сам разберусь как, а вот отследить...
Ответить с цитированием
  #2 (permalink)  
Старый 18.12.2019, 11:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

https://developer.mozilla.org/ru/doc...tationObserver
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2019, 11:47
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

чёт я не разобрался с Observer, поэтому подрубил jquery и начал отслеживать вот таким образом:
$("body").on('DOMSubtreeModified', "._dialog_body", function() {
console.log(this);
});

но теперь, почему-то, если мне пришлют сообщение, то оно будет продублировано в логах 2 раза, а я отправлю сообщение, то оно будет отображено 4 раза...


С чем это может быть связано?
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2019, 12:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от drkrol
чёт я не разобрался с Observer
https://learn.javascript.ru/mutation-observer


https://developer.mozilla.org/ru/doc...ubtreeModified
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2019, 12:58
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

Сообщение от laimas Посмотреть сообщение
https://learn.javascript.ru/mutation-observer


https://developer.mozilla.org/ru/doc...ubtreeModified
спасибо, но, как я понял, он следить только за одним из элементов, а мне нужно следить за всеми классами. Если указывать querySelectorAll(), то он не будет отрабатывать так, как надо. Будет ошибка:
Код:
Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2019, 13:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от drkrol
спасибо, но, как я понял, он следить только за одним из элементов
Это слежение за DOM, а DOM, это многочисленная семья.

В сети полно примеров его использования, и читая примеры выводите в обработчике в консоль объект, станет понятно что к чему.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить появление элемента на странице? рони Общие вопросы Javascript 18 23.06.2020 09:18
Акардион меню из чекбоксов и списка, как сделать подсветку текущего элемента OliLoi jQuery 0 08.11.2016 08:15
Как запретить прокрутку страницы при грозонтальной прокрутке внутреннего div? shurik_shink Events/DOM/Window 1 26.04.2016 15:50
Изменение содержимого div по клику и передача данных POST Serious2008 Общие вопросы Javascript 3 13.11.2011 20:12
Как сделать, чтобы span или div исчезали и появлялись плавно? Бобр Общие вопросы Javascript 30 15.02.2011 19:44