您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Eine nützliche Bibliothek für verschiedene Funktionen
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/528456/1545246/UTILS_DOM%20Library.js
- // ==UserScript==
- // @name UTILS_DOM Library
- // @namespace dannysaurus.epik
- // @version 1.0
- // @description Eine nützliche Bibliothek für verschiedene Funktionen
- //
- // @license MIT
- // @grant unsafeWindow
- // ==/UserScript==
- /* jslint esversion: 11 */
- /* global unsafeWindow */
- (() => {
- 'use strict';
- unsafeWindow.dannysaurus_epik ||= {};
- unsafeWindow.dannysaurus_epik.libraries ||= {};
- unsafeWindow.dannysaurus_epik.libraries.UTILS_DOM = (() => {
- /**
- * Tries to select an element by repeatedly attempting to find it.
- *
- * @param {Object} options - The options for selecting the element.
- * @param {String} [options.selectors] - The function to select the element.
- * @param {number} [options.maxAttempts=6] - The number of attempts to make.
- * @param {number} [options.intervalMs=10000] - The interval between attempts in milliseconds.
- * @returns {Promise<Element|NodeList>} The selected element(s).
- *
- * @throws {Error} If the element(s) could not be found.
- */
- const trySelectElement = async ({ selectors, maxAttempts = 6, intervalMs = 10000 } = {}) => {
- const sleep = () => new Promise(resolve => setTimeout(resolve, intervalMs));
- for (let attemptCount = 0; attemptCount < maxAttempts; attemptCount++) {
- const elements = document.querySelector(selectors);
- if (elements instanceof Element || (elements instanceof NodeList && elements.length)) {
- return elements;
- }
- await sleep();
- }
- throw new Error('Element(s) not found');
- };
- return {
- trySelectElement,
- };
- })();
- })();