setMutationHandler

MutationObserver wrapper to wait for the specified CSS selector

目前為 2017-02-11 提交的版本,檢視 最新版本

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

作者
woxxom
版本
3.0.0
建立日期
2015-09-05
更新日期
2017-02-11
尺寸
3.1 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';
        });
        return false; // stop observing 
    });
    
  • The observation target parameter may be omitted so "document" will be used by default:

    setMutationHandler('.container p.some-selector', function(nodes) { ...... });
    
  • Process existing elements and set a mutation handler for the future ones

    processExistingAndSetMutationHandler('a', processLinks);
    
  • 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';
        });
        return false; // stop observing 
    });
    
  • 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) {
        console.log(nodes);
        //return false; // stop observing 
    });
    
  • 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或关注我们的公众号极客氢云获取最新地址