Во-первых, это не «Как создать наблюдателя мутации?» и я видел API.Как получить трассировку стека для запущенного MutationObserver?
Мне было интересно, если кто-нибудь знает способ отображения «источника», когда произошла мутация. Скорее всего, это будет какое-то обходное решение - я не вижу упоминания об этом в документах API.
Я пытаюсь выяснить, где элемент получает display
в style
, установленный в none
.
Мой код выглядит следующим образом:
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "style") {
var extendedMutation = _.extend({}, mutation, {
newValue: $(mutation.target).attr("style")
});
console.log(extendedMutation);
}
});
});
observer.observe(row.element[0], { attributes: true, attributeOldValue: true });
У меня есть сервер мутационные события, и они выглядят по линии этого:
{
addedNodes: NodeList[]
attributeName: "style"
attributeNamespace: null
newValue: "display: none;"
nextSibling: null
oldValue: ""
previousSibling: null
removedNodes: NodeList[]
target: li#d526d311-e6e0-4ef1-a3a1-f8686bbb468f.group
type: "attributes"
}
Я просто хотел бы знать, где в источнике JS это исходит! Есть идеи?
Обратите внимание, что я пробовал использовать ctrl + f, но безрезультатно.
Отладчик выход/Исключение (пытался WebkitMutationObserver для Chrome также, такой же результат):
Просто потому, что «нить» выполнения асинхронна не означает, что вам придется столкнуться с трудностями, отслеживая ее «предысторию», то есть снимок того, что произошло до того момента, когда он был вызван. С помощью вызова Ajax вы можете (например) присоединить строку трассировки стека, ведущую к вызову Ajax, к обещанию, обертывающему объект Ajax. С MutationObserver это кажется невозможным. Раздражает. –