// ==UserScript== // @name leetcode自动计时 // @namespace http://tampermonkey.net/ // @version 2024-08-23 // @description 打开leetcode题目页面会自动开始计时 // @author You // @match *://leetcode.cn/problems/* // @icon https://www.google.com/s2/favicons?sz=64&domain=leetcode.cn // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Your code here... console.log("Waiting for .fa-arrows-rotate or .fa-alarm-clock to appear..."); function clickElementWithRetry(selector) { return new Promise((resolve, reject) => { setTimeout(() => { console.log(`开始执行:选择器为 ${selector}`); let retryCount = 0; let intervalId = setInterval(function() { retryCount++; // 在这里执行需要重试的操作 const element = document.querySelector(selector); console.log(`重试第 ${retryCount} 次,选择器为 ${selector}`); // 如果查询到非空元素或者重试次数达到50次,则停止重试 if (element || retryCount >= 50) { clearInterval(intervalId); if (element) { console.log(`点击 ${selector},退出循环`); element.parentNode.click(); } else { console.log("重试结束,未找到元素或达到最大重试次数。"); } } }, 200); resolve(); }, 2000); }); } clickElementWithRetry('.fa-alarm-clock'); clickElementWithRetry('.fa-arrows-rotate').then(() => { clickElementWithRetry('.fa-circle-play'); }); })();