Greasy Fork is available in English.
Waits for an element using the MutationObserver API
Detta skript bör inte installeras direkt. Det är ett bibliotek för andra skript att inkludera med meta-direktivet // @require https://update.greasyfork.org/scripts/523012/1519437/WaitForKeyElement.js
// ==UserScript==
// @name WaitForKeyElement
// @namespace Violentmonkey Scripts
// @version 1.1
// @description Waits for an element using the MutationObserver API
// @author PaywallDespiser
// @grant none
// ==/UserScript==
/**
* Waits for a element of a given selector.
*
* @param {string} selector
* @param {Element} [target=document.body]
* @returns {Promise<Element>}
*/
function waitForKeyElement(selector, target = document.body) {
return new Promise((resolve) => {
{
const element = target.querySelector(selector);
if (element) {
return resolve(element);
}
}
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (!(node instanceof HTMLElement)) continue;
if (node.matches(selector)) {
observer.disconnect();
resolve(node);
return;
}
const childElement = node.querySelector(selector);
if (childElement) {
observer.disconnect();
resolve(childElement);
return;
}
}
}
});
observer.observe(target, {
childList: true,
subtree: true,
attributes: false,
characterData: false,
});
});
}