MutationObserver
Подскажите пожалуйста. Раньше использовал событие DOMSubtreeModified, теперь подсказали что оно очень не эффективно и нужно использовать MutationObserver.
Так вот, раньше было так: document.addEventListener("DOMSubtreeModified", myFnc, false); function myFunc() { // получаю список элементов с классом 'img' и без класса 'wellDone' // даю на обработку массив элементов } 5-минутных попыток самому въехать в тему не хватило. Надеюсь подскажите как отловить новые элементы с классом img (которые раскиданные по DOM, но имеют общего родителя body) :) |
Вы не имеете контроля над html-документом? Вы делаете расширение для браузера?
|
Да
|
|
Я оттуда и читал.
|
В чем возникла проблема?
|
Mozilla Firefox тупо записал насмерть.. xD
Писал так: // select the target node var target = document.querySelector('.img'); // сейчас я понял что нужно указать body // create an observer instance var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if(/img/.test(mutation.target.className)) // как тогда отлавливать новые .img? mutation.target.style.outline = "1px solid red" }); }); // configuration of the observer: var config = { attributes: true, childList: true, characterData: true } // pass in the target node, as well as the observer options observer.observe(target, config); // later, you can stop observing //observer.disconnect(); |
Цитата:
Ты подписываешься на "событие" изменения атрибута, и тут же сам изменяешь атрибут style => рекурсия. Подписывайся только на нужные изменения. |
Ну да, во блин прокол.
Нуб же :D А че мне надо то? Я думаю так - subtree и childList. Потом еще попробую |
Наверное subtree достаточно будет.
|
Часовой пояс GMT +3, время: 20:30. |