setMutationHandler

MutationObserver wrapper to wait for the specified CSS selector

As of 2015-10-13. See the latest version.

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/12228/80003/setMutationHandler.js

Author
woxxom
Version
2.0.2
Created
2015-09-05
Updated
2015-10-13
License
N/A

MutationObserver wrapper to wait for an element (or elements) with the specified CSS selector.

First, load the function in your script metablock:

..............
// @require       https://greasyfork.org/scripts/12228/code/setMutationHandler.js
..............
// ==/UserScript==

Usage (single node, one-time change):

setMutationHandler(document, '.container p.some-child', function(nodes) {
    nodes[0].remove();
    this.disconnect(); // disconnect the observer, this is useful for one-time jobs
});

Usage (multiple nodes, the page is watched constantly for the added elements):

setMutationHandler(document, '.container p.some-child', function(nodes) {
    nodes.forEach(function(node) {
        node.style.display = 'none';
    });
    return true; // continue enumerating current batch of mutations
});

Usage (observe the changes only inside particular container element):

setMutationHandler(document.querySelector('.container-selector'), '.some-child', function(nodes) {
    nodes.forEach(function(node) {
        node.style.display = 'none';
    });
    return true; // continue enumerating current batch of mutations
});

You may want to make your userscript run at document-start to catch the mutations during page load:

..............
// @run-at        document-start
// @require       https://greasyfork.org/scripts/12228/code/setMutationHandler.js
..............
// ==/UserScript==