MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / attrObserver

Function attrObserver

scripts/libs/utils/attrObserver.js:10–36  ·  view source on GitHub ↗
(selector, fn, attrFilter, shadowRoot)

Source from the content-addressed store, hash-verified

8 * @param shadowRoot
9 */
10export function attrObserver(selector, fn, attrFilter, shadowRoot) {
11 if (!selector || !fn) return false;
12 function _attrObserver(element) {
13 const MutationObserver =
14 window.MutationObserver || window.WebKitMutationObserver;
15 const observer = new MutationObserver(fn);
16 const observeOpts = {
17 attributes: true,
18 attributeOldValue: true,
19 };
20
21 if (attrFilter) {
22 attrFilter = Array.isArray(attrFilter) ? attrFilter : [attrFilter];
23 observeOpts.attributeFilter = attrFilter;
24 }
25
26 observer.observe(element, observeOpts);
27 }
28
29 if (typeof selector === "string" || Array.isArray(selector)) {
30 ready(selector, (element) => _attrObserver(element), shadowRoot);
31 } else if (/Element/.test(Object.prototype.toString.call(selector))) {
32 _attrObserver(selector);
33 } else {
34 return false;
35 }
36}

Callers

nothing calls this directly

Calls 2

readyFunction · 0.90
_attrObserverFunction · 0.85

Tested by

no test coverage detected