Greasy Fork is available in English.
Waits for an element using the MutationObserver API
بۇ قوليازمىنى بىۋاسىتە قاچىلاشقا بولمايدۇ. بۇ باشقا قوليازمىلارنىڭ ئىشلىتىشى ئۈچۈن تەمىنلەنگەن ئامبار بولۇپ، ئىشلىتىش ئۈچۈن مېتا كۆرسەتمىسىگە قىستۇرىدىغان كود: // @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,
});
});
}