您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name Beatsaver scroll to id // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author Dartv // @match https://beatsaver.com/browse/latest // @grant none // ==/UserScript== (function() { const createSearchInput = () => { const container = document.createElement('div'); container.innerHTML = ` <label for="beatmapid">Beatmap id</label> <input name="beatmapid" placeholder="Enter beatmap id" /> `; container.style = 'position: absolute; top: 100px; right: 100px;'; document.body.appendChild(container); return document.getElementsByName('beatmapid')[0]; }; const observeLoader = (target, callback) => { const observer = new MutationObserver((mutations) => { mutations.forEach(({ type, removedNodes }) => { if (type === 'childList') { if (Array.from(removedNodes).some(node => node.classList && node.classList.contains('loader-container'))) { callback(); } } }); }); const options = { subtree: true, childList: true, }; observer.observe(target, options); return observer; }; const init = () => { let observer; const input = createSearchInput(); const target = document.getElementsByClassName('container')[1]; input.addEventListener('blur', (e) => { const id = e.target.value; if (observer) observer.disconnect(); if (id.length === 4) { const scrollToBeatmap = () => { const elem = document.getElementById(id); if (elem) { observer.disconnect(); elem.scrollIntoViewIfNeeded(); elem.style.border = '5px solid green'; return; } target.scrollIntoView(false); }; observer = observeLoader(target, scrollToBeatmap); scrollToBeatmap(); } }); }; window.addEventListener('load', init); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址