Skip to content

Instantly share code, notes, and snippets.

@jaklan
Last active December 30, 2022 08:34
Show Gist options
  • Save jaklan/2fb5d31797e0dc320d1450119e14f463 to your computer and use it in GitHub Desktop.
Save jaklan/2fb5d31797e0dc320d1450119e14f463 to your computer and use it in GitHub Desktop.
[Tampermonkey] waitForElement function
function waitForElement(selector, fallbackSelector) {
"use strict";
return new Promise((resolve, reject) => {
if (document.querySelector(selector)) {
return resolve(document.querySelector(selector));
}
const observer = new MutationObserver((mutations) => {
if (document.querySelector(selector)) {
resolve(document.querySelector(selector));
observer.disconnect();
} else if (fallbackSelector && document.querySelector(fallbackSelector)) {
reject("Fallback selector triggered.");
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true,
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment