您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
- // ==UserScript==
- // @name leetcode自动计时
- // @license MIT
- // @namespace http://tampermonkey.net/
- // @version 0.1.2
- // @description try to take over the world!
- // @author You
- // @match *://leetcode.cn/problems/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=leetcode.cn
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // Your code here...
- console.log("Waiting for .fa-arrows-rotate or .fa-alarm-clock to appear...");
- restartTimer();
- function clickElementWithRetry(selector) {
- const element = document.querySelector(selector);
- if (element){
- console.log(`点击 ${selector}`);
- element.parentNode.click();
- return new Promise( (resolve, reject) => {
- resolve();
- });
- }
- 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);
- });
- }
- function restartTimer(){
- clickElementWithRetry('.fa-alarm-clock');
- clickElementWithRetry('.fa-arrows-rotate').then(() => {
- clickElementWithRetry('.fa-circle-play');
- });
- }
- // "Ctrl + ;" 重新计时
- document.addEventListener('keydown', function(event) {
- if (event.ctrlKey && event.key === ';') {
- restartTimer();
- const messageElement = document.createElement('div');
- messageElement.textContent = '重新计时!';
- messageElement.style.position = 'fixed';
- messageElement.style.top = '50%';
- messageElement.style.left = '50%';
- messageElement.style.transform = 'translate(-50%, -50%)';
- messageElement.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
- messageElement.style.color = 'white';
- messageElement.style.padding = '10px';
- messageElement.style.borderRadius = '5px';
- messageElement.style.transition = 'opacity 0.5s';
- // 插入到页面中
- document.body.appendChild(messageElement);
- // 逐渐淡化并在 200ms 后消失
- setTimeout(() => {
- messageElement.style.opacity = '0';
- setTimeout(() => {
- document.body.removeChild(messageElement);
- }, 500); // 500ms 后移除元素
- }, 200); // 200ms 后开始淡化
- }
- });
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址