Greasy Fork is available in English.

waitForElement

Waits for an element using the MutationObserver API

Dette script bør ikke installeres direkte. Det er et bibliotek, som andre scripts kan inkludere med metadirektivet // @require https://updategreasyfork.deno.dev/scripts/528234/1546775/waitForElement.js

// ==UserScript==
// @name         waitForElement
// @namespace    Violentmonkey Scripts
// @version      1.2
// @description  Waits for an element using the MutationObserver API
// @author       maanimis
// @grant        none
// ==/UserScript==
 
/**
 * Waits for a element of a given selector.
 *
 * @param {string} selector
 * @returns {Promise<HTMLElement>}
 */
 
 function waitForElement(selector) {
  return new Promise((resolve) => {
    const ELEMENT = document.querySelector(selector);
    if (ELEMENT) {
      return resolve(ELEMENT);
    }

    console.log("can't find element for selector:", selector, "waiting...");

    const observer = new MutationObserver(() => {
      const ELEMENT = document.querySelector(selector);
      if (ELEMENT) {
        console.log("element found!!");
        resolve(ELEMENT);
        observer.disconnect();
      }
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true,
    });
  });
}