首页 > 解决方案 > How to get all active Mutation Observers on page?

问题描述

I checked API but couldn't find a way how to get list of active mutation observers on a page using javascript. Is it possible?

标签: javascriptmutation-observers

解决方案


如果你像这样扩展 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


推荐阅读