A simple wrapper around MutationObserver API to watch DOM changes.
Stan na
Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greatest.deepsurf.us/scripts/488160/1332702/Mutation%20Observer.js
// ==UserScript== // @name Mutation Observer // @description A simple wrapper around MutationObserver API to watch DOM changes. // @version 0.0.1 // @namespace owowed.moe // @author owowed <[email protected]> // @license LGPL-3.0 // ==/UserScript== /** * @typedef {MutationObserverInit & { * target: HTMLElement, * abortSignal?: AbortSignal, * once?: boolean * }} MakeMutationObserverOptions */ /** * @typedef {(info: { records: MutationRecord[], observer: MutationObserver }) => void} MakeMutationObserverCallback */ /** * Create a new `MutationObserver` with options and callback. * @param {MakeMutationObserverOptions} options * @param {MakeMutationObserverCallback} callback * @returns {MutationObserver} */ function makeMutationObserver({ target, abortSignal, once, ...options }, callback) { const observer = new MutationObserver(records => { abortSignal?.throwIfAborted(); if (once) observer.disconnect(); callback({ records, observer }); }); observer.observe(target, options); abortSignal?.addEventListener("abort", () => { observer.disconnect(); }); return observer; }