Как получить всех активных наблюдателей мутации на странице?

#javascript #mutation-observers

#javascript #наблюдатели мутации

Вопрос:

Я проверил API, но не смог найти способ, как получить список активных наблюдателей мутации на странице, используя javascript. Возможно ли это?

Ответ №1:

Что, если расширить MutationObserver следующим образом:

 class TrackedMutationObserver extends MutationObserver {

    static instances = []

    constructor(...args) {
        super(...args);
    }

    observe(...args) {
        super.observe(...args);
        this.constructor.instances.push(this)
    }

    disconnect() {
        super.disconnect();
        this.constructor.instances = this.constructor.instances.splice(this.constructor.instances.findIndex(instance => instance === this), 1)
    }

    static getActive() {
        return this.instances
    }
}
  

и вместо использования MutationObserver вы создаете экземпляр TrackedMutationObserver

Пример TS Playground