@Bezlepkin
Yii, PHP, JS, Android

Как в JS отловить изменения сделанные при помощи innerHTML?

Привет! Есть код:
var inputs = function () {
            var inputs = document.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; i++) {
                inputs[i].addEventListener("blur", function (e) {
                });
            };
        };


Поля формы отлавливает. Но если поле добавлено через innerHTML то уже не ловит. Как можно отловить изменеие innerHTML?
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
nikolayshabalin
@nikolayshabalin
Автор профессиональных курсов в HTML Academy
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Xuxicheta
@Xuxicheta
инженер
Как можно отловить изменеие innerHTML?


<div id="div"></div>

const div = document.getElementById('div');
const mo = new MutationObserver(m => console.log(m));
mo.observe(div, { childList: true });

div.innerHTML = '<p>Привет</p>';


https://developer.mozilla.org/ru/docs/Web/API/Muta...
Ответ написан
@lloydbanks
Для этой цели отлично подходит Proxy

const div = document.createElement('div')
document.body.appendChild(div)

const divWatcher = new Proxy(div, {
	set(target, prop, value) {
		target[prop] = value
		console.log(prop, value)
		return true
	}
})

divWatcher.innerHTML = 'html' // innerHTML html

https://jsfiddle.net/lloydbanks/jgqokech/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы