A simple wrapper around MutationObserver API to watch DOM changes.
Verzia zo dňa
Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @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; }