Я пишу простую учетную запись, которая автоматически скрывает сообщение Facebook, если содержит определенный список слов. Основная функциональность работает, но мой MutationObserver
, кажется, не читает className
mutation.addedNodes
должным образом. Я прохожу через mutation.addedNodes
и проверяю, имеет ли какой-либо из этих элементов класс userContentWrapper
, но результат этого теста всегда неверен - даже если у элемента есть класс.Получение имени класса добавленного узла DOM (mutationObserver)
var startObserver = function() {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
var added = mutation.addedNodes;
for (var i = 0; i < added.length; i++) {
if (/\buserContentWrapper\b/.test(added[i].className)) {
processFilter(added[i]);
}
}
});
});
var obj = {childList: true, subtree: true, attributes: true};
observer.observe(document.documentElement, obj);
};
Я могу только предположить, что наблюдатель анализирует добавленный узел, прежде чем он полностью сформирован со всеми атрибутами на месте. Как заставить наблюдателя ждать обработки узла до тех пор, пока он не будет полностью завершен? Или я не понимаю проблему?
Заранее спасибо ...
ли не добавлять '' childList' и subtree' с параметрами наблюдения поковыряться автоматически ? – Cliff
Это не * расширение *, что было добавлено. Например, 'someNode.appendChild (anotherNodeWith1000children)' не будет расширяться, потому что это всего лишь одна операция. – wOxxOm
Да, я подумал, что так работает «childList», а затем «поддерево» будет автоматически искать все потомки. Что же такое '' поддерево', то? – Cliff