У меня есть div, содержимое которого может меняться различными способами: например, весь его контент может быть изменён через innerHTML, или могут быть добавлены узлы через DOM-методы. Это может произойти через собственный javascript или через вызовы jQuery API, или через другие библиотеки.
Я хочу выполнить некоторый код, когда содержимое div изменится, но я абсолютно не контролирую, когда он изменится. Действительно, я разрабатываю плагин, который может использоваться другими людьми, которые могут свободно изменять содержимое своих div'ов так, как они предпочитают. Когда внутреннее содержимое этого div изменяется, форма плагина также может быть обновлена.
Я использую jQuery. Есть ли способ отловить изменение содержимого div?
Ответ
MutationObserver (поддержка)
const observer = new MutationObserver(mutations => console.log(mutations));
observer.observe(test, {
attributes: true,
childList: true,
characterData: true,
subtree: true
});
test.innerHTML = '1';
test.classList.add('test');
test.appendChild(document.createElement('br'));
test.innerHTML += '2';
Комментариев нет:
Отправить комментарий