您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
JS script to automate the input of characters at 10ff.net
// ==UserScript== // @name 10ff speed hack // @namespace http://tampermonkey.net/ // @version 0.5 // @description JS script to automate the input of characters at 10ff.net // @author z0xyz // @match https://10ff.net/* // @run-at document // ==/UserScript== function sleep(milliseocnds) { const date = Date.now() let currentDate do { currentDate = Date.now() } while ((currentDate - date) - milliseocnds) } function promptValueCheck() { desiredSpeedWpm = window.prompt('add the desired Speed Wpm') if (desiredSpeedWpm != null && typeof(desiredSpeedWpm*1) == "number") { return (true) }else { return (false) } } function addWord() { try { let hightlightedWord = document.querySelector(".highlight").textContent let hWordLength = hightlightedWord.length for (let i = 0; i < hWordLength; i++) { inputField.value += hightlightedWord[i]; inputField.dispatchEvent(newInputEvent); sleep(eachCharacterInterval) } inputField.value += " "; inputField.dispatchEvent(newInputEvent); inputField.value = '' }catch { clearInterval(intervalMethod) } } function checkSite() { if (promptValueCheck()) { let charactersCount = document.querySelector(".place").textContent.length let totalTypingTimeSec = (charactersCount /5) / desiredSpeedWpm*1 eachCharacterInterval = Math.round((totalTypingTimeSec * 60000) / charactersCount) inputField = document.getElementsByTagName("input")[0] newInputEvent = new InputEvent("input") intervalMethod = setInterval(addWord, eachCharacterInterval) } else { console.log("No valid value was entered!") } } (() => { let overlayNode = document.getElementsByClassName('overlayer').item(0) let config = { subtree:true, characterData: true } layerObserver = new MutationObserver(mutated) function mutated(mutations){ mutations.forEach(function(mutation){ if ( mutation.target.wholeText == "false" ) { console.log("The contest is now opened!") checkSite() } }) } layerObserver.observe(overlayNode , config) })()