setMutationHandler

MutationObserver wrapper to wait for the specified CSS selector

目前為 2016-07-22 提交的版本,檢視 最新版本

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/scripts/12228/137548/setMutationHandler.js

作者
woxxom
版本
2.0.7
建立日期
2015-09-05
更新日期
2016-07-22
尺寸
2.2 KB
授權條款
未知

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://gf.qytechs.cn/scripts/12228/code/setMutationHandler.js
..............
// ==/UserScript==
  • Watch for added nodes:

    setMutationHandler(document, '.container p.some-selector', function(nodes) {
        nodes.forEach(function(node) {
            node.style.display = 'none';
        });
        //this.disconnect(); // stop observing 
        return true; // continue enumerating current batch of mutations
    });
    
  • Watch for added nodes only inside the specified container element that already exists in the document:

    setMutationHandler(document.querySelector('.container-selector'), '.some-selector', function(nodes) {
        nodes.forEach(function(node) {
            node.style.display = 'none';
        });
        //this.disconnect(); // stop observing 
        return true; // continue enumerating current batch of mutations
    });
    
  • Advanced example with customized options to watch for changes in the title attribute:

    setMutationHandler(document, '.some-selector', processNodes, {
        attributes: true, attributeFilter: ['title'],
        subtree: true
    });
    function processNodes(nodes, mutation) {
        console.log('Node %O changed title from "%s" to "%s"',
            nodes[0], mutation.oldValue, nodes[0].title);
        });
        //this.disconnect(); // stop observing 
        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://gf.qytechs.cn/scripts/12228/code/setMutationHandler.js
    ..............
    // ==/UserScript==
    

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址